HARDWARE-
AMATEUR
ERWEITERUNG FÜR
ZX SPECTRUM
BIBLIOTHEK
Jörg Reinmuth
Jörg Reinmuth
Hardware-Erweiterungen
für ZX Spectrum
Brandenburgisches
Verlagshaus
Reinmuth, J.:
Hardware-Erweiterungen für ZX Spectrum. -
Berlin: Brandenburgisches Verlagshaus, 1990. -
96 Seiten: 87 Bilder, 19 Tabellen, 6 Programme
ISBN 3-327-01030-7
1. Auflage
© Brandenburgisches Verlagshaus, Berlin 1990
Computersatz: System SCLX
Druck und buchbinderische Weiterverarbeitung:
Druckhaus Schöneweide - 3 4380-0
Lektor: Steffen Würtenberger
Zeichnungen: Berit Peschei
Umschlaggestaltung: Rosemarie Lebek
Redaktionsschluß: 15. Januar 1990
LSV 3539
Bestellnummer: 747 3841
DDR 6,20 M
Vorwort
Die Vorzüge von Mikroelektronik
und Computertechnik sind sicher
Jedem Leser ausreichend bekannt.
In den letzten Jahren hat der
Computer auch den Heim-, Hobby-
und Amateurbereich erobert. In
der DDR dominieren zumeist 8-
bit -Systeme, die überwiegend mit
der CPU U 880 arbeiten. Dieser
zum Z 80 kompatible Mikroprozes¬
sor kann aufgrund seiner weiten,
auch internationalen Verbreitung
und seiner Leistungsfähigkeit
schlechthin als der 8-bit-Pro-
zessor bezeichnet werden.
Vertreter dieser Geräteklasse
aus DDR -Produktion sind z. B.
KC 85, Z 9001, Z 1013 oder AC 1.
Als internationaler Vertreter
sei hier der ZX Spectrum ge¬
nannt, der inzwischen als Origi¬
nal oder durch einige mehr oder
weniger kompatible Nachbauten in
der DDR sowie im gesamten RGW-
Bereich eine so weite Verbrei¬
tung gefunden hat, daß es Verlag
und Autor angemessen erschien,
diese Broschüre herauszugeben.
Das vorliegende Heft wendet sich
an den fortgeschrittenen Ama¬
teur, der mit einfachen und
überschaubaren Schaltungen die
Leistungsfähigkeit seines Heim¬
computers erhöhen möchte. Einige
Kenntnisse der digitalen Schal¬
tungstechnik werden dabei ebenso
vorausgesetzt wie etwas Lötpra¬
xis und Erfahrung im Umgang mit
elektronischen Bauelementen, Die
vorgestel Iten Schaltungen sind,
eventuell mit kleinen Änderun¬
gen, an andere U- 8 80- Systeme
anpaßbar, obwohl in dieser Bro¬
schüre immer auf den ZX Spectrum
Bezug genommen wird. Neben einer
detai 1 1 ierten Beschreibung der
Hardware wird auch Treibersoft¬
ware angegeben, um die Inbe¬
triebnahme der Schaltungen zu
erleichtern,
Leipzig, im Frühjahr 1989
Jörg Relnmuth
3
I
s
I
i. Das IMÖO-Prozessorsystei
Das Mikroprozessorsystem U 680
stellt eine Weiterentwicklung
der Systeme 6060 und 8085 dar.
Zum System gehören folgende LSI-
Schaltkreise:
- U 680 , CPU (zentrale Verarbei-
tungseinheit) ;
- U 655 , PIO (parallele Ein-
/Ausgahe) ;
- U 856 , SIO (serielle Ein-/Aus-
ga he) ;
- U 657, CTC (Zähler/Zeitgeber);
- U 856 , DMA (direkter Speicher¬
zugriff) .
Alle Schaltkreise werden vom
VEB Mikroelektronik "Karl Marx"
Erfurt in n-Kanal -Silicon-Gate-
Technologie hergestellt und mit
Ausnahme des CTC in einem 40-
poligen Plastgehäuse verkappt.
Der CTC wird in einem 28poligen
Gehäuse geliefert. Die Architek¬
tur der Schaltkreise realisiert
ein einheitliches System mit
folgenden Merkmalen [1]:
- Signal Zuführung über zwei
Systembusse (Adreß- und Daten¬
bus) und eine Reihe von Steu¬
erleitungen (Steuerbus) ;
- einheitliches Interruptregime
mit der Möglichkeit der Prio¬
ritätsverkettung der Periphe¬
rieschaltkreise;
- hochgradige Softwareprogram¬
mierbarke it der schal tkrei s -
spezifischen Eigenschaften;
- gemeinsamer Einphasensystem¬
takt;
- einheitliche Spannungsversor¬
gung von +5 V.
Das System wird komplettiert
durch den Einsatz von Festwert-
spe i ehern , Sehr e ib-Le s e - Spe i -
ehern und Standard-Logikschal t-
kreisen.
Neuer e Interface - Scha 1 tkr e i s e
wie die Typen U 62550 (SCC;
Serial Cornnunication Controller
- serielle Ein-/Ausgabesteue-
rung) und U 82536 (CIO: Count er-
/Timer and parallel I/O unit -
Zähler/Zeitgeber und parallele
Ein-/Ausgabeeinheit) werden hier
nicht besprochen, da sie zum
Zeitpunkt der Manuskripterarbei-
t tung für den Amateur noch nicht
greifbar waren. Sie werden aber
in Zukunft für komplexe System¬
lösungen zunehmende Bedeutung
erlangen.
1. i. CPU U ÖÖO
Der Prozessor U 880 ist das Herz
des Systems. Er ist aufwärtskom¬
patibel zum weit verbreiteten
Prozessor 8080, d. h. alle im
8080 enthaltenen Möglichkeiten
sind auch im U 880 vorhanden.
Die Weiterentwicklung der U-860-
CPU (CPU: Central Processing
Unit - zentrale Verarbeitungs-
einhelt) bezieht sich vor allem
auf einen effizienteren Befehls¬
satz und auf das Interrupt ver¬
halten.
Der Befehlssatz des U 880 umfaßt
158 Grundbefehle mit 16-bit-'f 8-
bit-, 4-bit- und Einzelbitopera¬
tionen sowie Ein-/Ausgabe- und
Blockbefehlen. Der Schaltkreis
enthält einen internen stati¬
schen RAM, zu dem der Program¬
mierer Zugriff hat. Dieser RAM
ist unterteilt in 18 8-bit-Re-
5
System¬
steuer -
Signale
CPU-
Steuer-
_ Signale
Bus-
steuer-
signale
Ml -
MREQ -
IORQ -
RD -
WB -
RFSH -
hält -
ÜBT -
Int -
NMl “
RESET -
BÜSRQ-
BUSAK-
CP
Ucc
öss
27
30
31
19
32
20
33
21
34
22
35
36
28
37
38
18
39
40
24
U 880
1
2
16
3
17
4
5
26
14
25
15
23
12
8
9
6
9
11
10
29
13.
Ao
Ai
A2
A3
Aa
a5
a6
a7
a8
a9
A10
An
A12
Al3
Aia
ais
Do
Di
D2
d3
Da
Ds
De
D 7
Adreßbus
Datenbus
Bild 1. 1 Schematische Anschlußbelegung der CPU U 660
glster und 4 16-bit-Register.
Die Anschlüße legung der CPU
U 660 zeigt Bild 1. 1. Uber Be¬
fehlssatz und Programmierung ge¬
ben z. B. [1], [2] und [3] um¬
fassend Auskunft.
1. 2.
PIO U 655
System -
datenbus
System -
Steuerbus
Do -
Di
D2 -
D3 -
Da -
Ds “
De -
D7
B/ÄSEL-
C/DSEL-
CE
Ml
iöKö -
RD -
Interrupt-
Steuerung
Ucc
Uss
CP
IE!
IE0
INT
19
15
20
14
1
13
40
12
39
10
38
9
3
8
2
7
6
18
5
4
U 855
16
37
27
36
28
35
29
30
26
31
11
32
25
33
34
24
22
21
23
17
Die PIO (Parallel Input/Output -
parallele Ein-/Ausgabe) U 655
ist die parallele Ein-/Ausgabe¬
einheit des Systems U 660.
Ai
A2
a3
Aa
As
A6
a7
ARDY
ASTB
Bi
B2
b3
Ba
Bs
Be
B7
BRDY
BSTB
Kanal A
Kanal B
Bild 1. 2 Schematische Anschlußbelegung der PIO U 655
6
Der Schaltkreis enthält zwei
Komplette, nach außen TTL -Kompa¬
tible 8-bit-Ein-/Ausgabetore
einschließlich der dazugehörigen
SteuerlogiK und ist in seinen
wesentlichen Eigenschaften soft-
wareprogrammierbar. Bild 1,2
zeigt die Anschlußbelegung. Die
Zusammenschaltung der PIO U 655
mit dem Prozessor U 660 erfor¬
dert Keine weiteren ptandardbau-
elemente, ausgenommeh Adreßdeko¬
der, Datenbustreiber und Inter¬
rupt -KasKadierungslogiK bei den
größeren Systemen. In Abhängig¬
keit von der TaKtfrequenz des
Prozessors Kommen die PIO-Typen
VA 655 (4 MHz), UB 655 (2,5 MHz)
und UB 655 St (1 MHz) zum Ein¬
satz. Im allgemeinen lassen sich
die Schaltkreise aber auch bei
höheren als den angegebenen Fre¬
quenzen betreiben. Die PIO be¬
legt im Adreßraum eines Mikro¬
rechners 4 Adressen, die paar¬
weise den Kanälen A und B als
Steuer- bzw. Datenwortadressen
zugeordnet sind. Unter Verwen¬
dung der PIO U 655 kann der
gesamte Datentransfer eines Mi¬
krorechners unter vol 1 ständiger
I nt errupt Überwachung dur chg e -
führt werden. Diese Problematik
wird hier nicht ausführlich be¬
handelt. Weil die PIO U 655 aber
Bestandteil einiger Schaltungen
dieses Buches ist, wird im fol¬
genden ihre Programmierung kurz
dargestellt. Weit er führ ende Ein¬
zelheiten können z. B. [1], [2]
entnommen werden. Die Program¬
mierung der PIO sowie aller an¬
deren Peripherieschaltkreise er¬
folgt mit OUT-Befehlen an die
entsprechende Steuerwortadresse.
Die PIO ist für den Betrieb mit
der CPU U 860 in der sehr lei-
stungsf ähigen Interruptbetriebs¬
art 2 ausgelegt. In dieser Be¬
triebsart wird innerhalb eines
I nt errupt anerkennung s zyk 1 us der
CPU von der PIO ein sogenannter
Interruptvektor auf den Datenbus
gelegt, der (als niederwertiger
Teil) zusammen mit dem Inhalt
des I -Registers der CPU (als
höherwertiger Teil) einen 16-
bit-Zeiger bildet, der auf eine
Speicheradresse zeigt. Dieser
und der folgende Speicherplatz
enthält die Startadresse für die
Interruptroutine. Der Interrupt¬
vektor wird der PIO als erstes
Steuerwort mitgeteilt; er kann
entfallen, wenn in keiner Inter¬
ruptbetriebsart gearbeitet wird.
Das Steuerwort hat folgendes
Format :
D7 D6 D5 D4 D3 D2 Dl DO
V7 V6 V5 V4 V3 V2 VI VO
Mit PIO-Kanal A sind 4 Betriebs¬
arten (Moden) realisierbar:
Mode 0: Byte-Ausgabe
Mode 1 : By t e -Ei ng abe
Mode 2: Byte -Ein- /Ausgabe
Mode 3: Bit-Ein-/Ausgabe
Kanal B kann nur in den Be¬
triebsarten 0, 1 und 3 arbeiten.
Das Betriebsartensteuerwort hat
das Format
D7 D6 D5 D4 D3 D2 Dl DO
Ml MO X x 1 1 1 1
mit folgender Zuordnung von Ml
und MO zu den Betriebsarten:
Ml MO MODE
0 0 0
0 1 1
1 0 2
1 1 3
Nicht verwendete Bits werden
hier und im folgenden mit x ge¬
kennzeichnet und zur Vereinheit¬
lichung konsequent auf 0 ge¬
setzt. Nur für die Betriebsart 3
(in der alle acht Portleitungen
eines Kanals unabhängig vonein-
7
/
!
ander als Ein- oder Ausgänge
definiert werden Können) gelten
3 weitere Steuerwörter. Mit dem
ersten wird die Funktion der
Portleitungen als Ein- oder
Ausgang festgelegt. Dabei gilt
die Zuordnung 0 = Ausgang, 1 =
Eingang.
D7
D6
D5
D4
E/A7
E/A6
E/A5
E/A4
D3
D2
Dl
DO
E/A3
E/A2
E/Al
E/AO
Das nächste Steuerwort dient der
Interrupt Steuerung. Es Kann wie
auch das folgende wieder entfal¬
len, wenn in Keiner Interruptbe¬
triebsart gearbeitet wird.
D7
D6
D5
D4
INT
UND/
LOW/
Maske
ODER
HIGH
folgt
D3
D2
Dl
DO
0
1
1
1
D7
0:
Interrupt gesperrt
D7
=
1:
Interrupt freigegeben
D6
r
0:
UND-Verknüpfung der
Interrupt aus 1 ö senden
Leitungen
D6
=
1:
ODER-Verknüpfung der
i nt errup t aus lös enden
Leitungen
D5
=
0:
aktiver Pegel LOW
D5
=
1:
aktiver Pegel HIGH
D4
-
0:
Maske folgt nicht
D4
=
1:
Maske folgt
Sofern ^ m Interrupt Steuerwort
bit 4 auf 1 gesetzt wurde, wer¬
tet der PIO-Kanal das nächste an
ihn gerichtete Steuerwort als
Maske. Damit wird festgelegt,
welche der Kanal lei tungen auf
die Interruptbildung Einfluß
nehmen. Die Kanal lei tungen haben
Einfluß auf die Interruptbil¬
dung, wenn das entsprechende Bit
im MasKierungssteuerwort auf 0
gesetzt ist.
D7
D6
D5
D4
MB7
MB6
MB5
MB4
\ D3
D2
Dl
DO
MB3
MB2
MB1
MBO
Das letzte Steuerwort hat wieder
Bedeutung für alle 4 Betriebsar¬
ten der PIO. Es hat das Format
D7 D6 D5 D4
Interrupt- x x x
Freigabe
D3 D2 Dl DO
0 0 11
und dient der Beeinf lussung der
Interrupt frei gäbe. Mit D7 = 0
wird die Weiterl ei tung eines In¬
terrupts verhindert, mit D7 = 1
erlaubt. Auch wenn nicht in
einer Interruptbetriebsart gear¬
beitet wird, sollte dieses Steu¬
erwort (dann mit D7 = 0) ausge¬
geben werden, um unvorhersehbare
Interruptanforderungen mit Si¬
cherheit auszuschließen.
i. 3. SIO U 656
Die SIO U 656 ist die zum System
U 660 gehörige serielle Ein-
/Ausgabe-Einheit (SIO: Serial
Input/Output - serielle. Ein-
/Ausgabe), Der Schaltkreis ent¬
hält 4 unabhängige serielle.
Ports, die in Je 2 Sender- und
Empfänger ports unterteilt sind.
Durch Software programmierbar
sind eine Vielzahl von Betriebs¬
arten. Einstellbar sind unter
anderem die Anzahl der übertra¬
genen Bits pro Zeichen, Anzahl
der Stopbits, Art der Parität
(gerade, ungerade oder Keine),
verschiedene TaKtvar 1 ant en,
automatische Prüf summenbi 1 düng
'und -Kontrolle, Null- und Flag-
Einfügung und vieles andere
mehr, Details zur -umfangreichen
8
System¬
daten¬
bus
System-
steuer-
bus
Inter-
rupt-
steuer-
ung
Oo -
Di ■
D2 , ■
D3
•Da ■
05 ■
De -
O7
RESET -
B/ASEL
ODSEL-
£
Ml -
I0RQ -
m -
UCc -
Dss ’
CP
IEI
IE0 -
INT -
40
12
1
13
39
15
2
14
38
11
3
10
37
4
17
18
21
16
34
33
U 856
19
35
28
8
27
36
26
32
29
30
9
31
24
20
23
25
6
22
7
5
RxDA
RxCA
TxDA
Tx CA
SYNCA
W/RDYA
Kanal A
• RTSA 1
- CTSA I Modem -
ÖTO [ Steuerung
DCDÄ J
RxDB
RxTxCB
TxDB
SYNCB
W/RDYB
RTSB
CTSB
CTRB
DCDB
Modem -
Steuerung
Kanal B
Bild 1 . 3 Schematische Anschlußhel egung der SIO U 656
Programmierung der SIO U 856 1.4. CTC U 857
Können [2] entnommen werden. Die
Ansclilußbelegung zeigt Bild 1. 3. Der CTC U 857 ist der Zähler-
/Zeitgeber-Baustein des Systems
U 880 (CTC: Counter/Timer-Cir-
cuit - Zähler/Zeitgeber-Schalt-
»
System¬
daten¬
bus
System-
steuer-
bus
Interrupt
Steuer
ung
Do “
Di “
D2 “
d3 -
D4 -
De -
De -
07 -
KS0 -
KSi -
CE -
Ml -
IORQ-
RD -
RESET-
Ucc -
Uss -
CP -
IEI -
IEO -
iFJT -
25
26
2 7
28
1
2
3
4
18
19
16
14
10
6
17
23
7
22
8
21
9
U 857
20
24
5
15
13
11
12
ss-]—
ST]“-’
“l!
CLK/TRG{] Kanal 3
Bild 1. 4 Schematische Anschlußhel egung des CTC U 857
9
Kreis). Der Schaltkreis, dessen
Anschlußbelegung im Bild 1.4 an¬
gegeben ist, enthält 4 voneinan¬
der unabhängige und durch Soft¬
ware programmierbare 8-bit-Zäh-
1 er/ 1 6-bi t-Zei tgeber-Kanäl e.
Die maximale Zälfrequenz beträgt
stets die Hälfte des Systemtak¬
tes, also z. B. 1,25 MHz bei
einer Systemtaktfrequenz von
2, 5 MHz. In der Betriebsart
Zeitgeber 'beträgt die Zeitra¬
ster-Interval 1 -Auflösung 16 odep
256 Systemtaktperioden entspre¬
chend einem Vorteilerfaktor, der
Bestandteil eines Steuerwortes
ist. Die Kanäle sind zur Erwei¬
terung des Zählumfangs und zur
gegenseitigen Triggerung kaska-
dierbar. Allerdings ist der Aus¬
gang des Kanals 3 wegen der Be¬
schränkung auf ein 28poliges Ge¬
häuse nicht heraus geführt. über
die Programmierung geben [1],
[2] Auskunft.
1. 5. DMA U 858
Der DMA- Schaltkreis (DMA - Di¬
rect Memory Access - direkter
Speicherzügriff ) U 853 ist ver¬
antwortlich für den Datentrans¬
port Uber das Bussystem eines
Mikrorechners unter. Umgehung der
CPU. Die DMA-Elnheit ist in der
Lage, sowohl eine Datenübertra¬
gung, eine Suche nach einem
maskierbaren Byte als auch eine
Kombination beider Möglichkeiten
zu organisieren. Als maximale
Dat enüber tr agung sg e s chwindi gke i t
werden für die 4-MHz-Version des
U 353 2 MByte/s und für die 2, 5-
MHz-Version 1,25 MByte/s angege¬
ben. In Kleincomputersystemen
spielt, der DMA-Betrieb aller¬
dings nur eine untergeordnete
Rolle, zumal im Befehlssatz der
CPU U 880 sehr 1 eistungsf ähige
Blocktransfer- (z. B. LDIR,
OTIR, INIR) und Blocksuchbefehle
(z. B. CPIR) zur Verfügung ste¬
hen. Bild 1.5 zeigt die An¬
schlußbelegung des U 858.
System¬
daten¬
bus
System¬
steuer¬
signale
Bus-
steuer-
ung
Do
Di
02
d3
Da
Ds
De
D7
Ml
10RQ
MREQ
RD
WR
mm
BAI
BÄÖ
Ucc
Uss .
CP
35
6
34
5
33
4
32
3
31
2
29
1
28
i* 0
27
39
24
26
23
10
U858
22
12
21
g
20
8
19
18
15
17
14
13
25
16
11
37
30
38
7
39
Ao
Ai
A2
a3
Aa
Ab
A6
a7
a8
Ag
Aio
An
Ai2
Ai3
Aia
Aib
System -
adreflbus
RDY
CE/WA1T
INT/PÜLSE :
IEI
IE0
DMA-
Steuerung
Interrupt¬
steuerung
Bild 1. 5 Schematische Anschlußhel egung des BMA U 858
10
2
Der Aufbau eines Kleincomputers
Der Aufbau aller Kleincomputer
Ist im Prinzip ähnlich. Sie
enthalten, meist auf nur einer
Platine, einen Mikroprozessor,
Speicher und verschiedene Ein-
/ Ausgabe-Einheiten sowie Schal¬
tungen zur Be triehsspannungs Ver¬
sorgung. Daraus ergibt sich das
e inf ache über s i cht s scha 1 tbi 1 d
nach Bild 2. 1, Der Mikroprozes¬
sor sorgt für die Ausführung der
im Speicher abgelegten Befehle
und ist für die Verwaltung des
gesamten Systems verantwortlich.
Im Speicher sind Daten und Pro¬
gramme abgelegt. Es existieren
verschiedene Spei eher typen, die
in Nur-Lese-Speicher (Read-Only
Memory - ROM) und Schreib-Lese-
Speicher oder Speicher mit wahl¬
freiem Zugriff (Random-Access-
Memory - RAM) unterschieden
Bild 2. 1 Einfaches Ubers 1 cht s -
schalthlld eines Kleincomputers
werden. Die Ein- /Ausgabe -Einhei¬
ten dienen hauptsächlich der
Bedi ener-Comput er-Kommunlkat i on.
In erster Linie zu nennen sind
hier Tastatur und Bildschirm
Dazu gehört aber auch der An¬
schluß externer Massenspeicher
(Magnetband oder Floppy-Disk)
zur dauerhaften Speicherung von
Programmen und Daten.
11
I
3, SpezialschaltKreise für Kleincomputer
Im Hinblick auf eine Minimierung
der Hardware und damit verbunde¬
ne geringere Produktionskosten
und Ausf al 1 Wahrscheinlichkeiten
existieren international eine
Vielzahl von Schaltkreisen, die
speziell für Kleincomputer, Ja
oft für einen speziellen Gerate¬
typ entworfen wurden. Sie sind
meist mit einem Kürzel entspre¬
chend Ihrer Funktion benannt -
Beispiele dafür sind SID (Sound
Generator), VIC (Video Control¬
ler) oder das aus dem ZX Spec¬
trum bekannte ULA (Uncomnitted
Logic Array) - und ersetzen eine
oft große Zahl von Standardbau¬
elementen, denen sie durch ihre
teilweise Programnierbarkeit oft
noch überlegen sind. So ist das
ZX -Spectrum- ULA z. B. verantwort¬
lich für den Bildaufbau, die
Tastaturabfrage, die Kontrolle
der Ein- /Ausgabeeinheiten für
Kassettengerät und Lautsprecher,
ferner für die Takt auf bei'eitung,
die Interruptgenerierung, Deko¬
dierung verschiedener Speicher¬
bereiche, Erzeugung spezieller
Signale für die dynamischen
Speicher und anderes mehr [4] ,
[5], [6], Diesem ULA und einem
weiteren Schaltkreis, der die
gesamte PAL -Aufbereitung des
Video-Signals übernimmt, ist es
wohl in erster Linie zu verdan¬
ken, daß (natürlich mit einem
fast genial zu nennenden System¬
konzept) der ZX Spectrum ein
Rechner in einem winzigen Gehäu¬
se ist, der keine Konkurrenz in
seiner Klasse scheuen muß. Das
gilt umsomehr, wenn man ihn mit
etwas Zusatzhardware zu noch hö¬
herer Leistungsfähigkeit ausge-
„ baut hat. Als nachteilig an der
Verwendung dieser speziellen
Schaltkreise erweist sich, daß
sie im Reparaturfall sehr schwer
beschaffbar sind und daß über
sie meist nur sehr spärliche
technische Unterlagen existie¬
ren.
13
♦
4. Adreßdekodierung
Damit ein peripheres Bauelement
in einem Computersystem über¬
haupt angesprochen wird, ist ein
sogenannter Geräteauswahl impul s
notwendig, der über einen Ein¬
gang dieses Bauelement akti¬
viert. Dieser Eingang wird oft
mit CS (Chip Select - Baustein¬
auswahl) oder CE (Chip Enable -
Bausteinfreigabe) bezeichnet und
ist bei den Peripheriebausteinen
des Systems U ööO low-aktiv.
Zur Bildung dieses Auswahl impul -
ses werden i. allg. die 8 nie¬
derwertigen Adressen AO bis A7
und die Signale IORQ, WR und RD
über entsprechende Dekoder oder
Gatter verknüpft. Dabei wird
zwischen ein- und mehrdeutiger
Dekodierung unterschieden.
Bei der mehrdeutigen Dekodierung
wird nur ein Teil der Adreßlei¬
tungen bzw. nur eine einzelne
Adreßleitung zur Auswahl des
Jeweiligen peripheren Bauelemen¬
tes verwendet. So spricht z. B.
die Adreßleitung AO im ZX Spec¬
trum direkt das ULA an (mit AO =
0 und IORQ = 0). Solche Maßnah¬
men vereinfachen die Hardware
eines Computers zwar erheblich,
haben aber bei der Hardware -
Erweiterung eines solchen Rech¬
ners gewisse Beschränkungen zur
Folge. Bei konsequenter Fortfüh¬
rung dieser Technik lassen sich
nämlich insgesamt nur 8 E/A-
Adressen (entsprechend der 8
Adreßbits) bilden, wovon eine
einzige PIO schon 4 fordert.
Darüber hinaus ergeben sich aber
auch softwareseitige Konsequen¬
zen. So ist der Peripherie¬
baustein, der mit AO = 0 ange¬
sprochen wird, über OUT-Befehle
an alle geradzahligen Adressen
(also 128!) erreichbar. Günsti¬
ger, besonders bei umfangreiche¬
ren Hardware-Erweiterungen, ist
deshalb die eindeutige Dekodie¬
rung. Hierbei kann Jede Adresse
zwischen 0 und 255 genau ein
peripheres Gerät ansprechen. Die
Hardware des ZX Spectrum zwingt
hier allerdings zu einem Kompro¬
miß, da gesichert werden muß,
daß ULA (AO) und ZX-Drucker (Al)
nie gleichzeitig mit einem ande¬
ren Peripheriegerät aktiviert
werden. Mit den verbleibenden
sechs Adreßleitungen sind aber
immer noch 26 = 64 E/A-Einheiten
ansprechbar.
15
I
5, Hardware-Erweiterungen
Heim- oder Kleincomputer stellen
zumeist in sich relativ ge¬
schlossene Systeme dar. Venn bei
der Konzeption nicht schon von
einem modularen Aufbau ausgegan¬
gen wurde, wie beim KC 65 oder
beim Z 1013 , fällt eine hardwa¬
reseitige Erweiterung des Rech¬
ners dem mit der Rechentechnik
weniger vertrauten Anwender oft
schwer. Leider ist auch der ZX
Spectrum bei der Ausstattung mit
Schnittstellen mehr als stief¬
mütterlich behandelt worden.
Außer dem Magnetbandanschluß,
der Ja im Grunde eine serielle
Schnittstelle darstellt, und dem
Anschluß für ein Fernsehgerät
(leider auch nur über HF) sind
in der Grundversion Keine weite¬
ren Anschlußmöglichkeiten vor¬
handen. Im folgenden soll daher
gezeigt werden, wie es mit rela¬
tiv einfachen Mitteln möglich
ist, kleine Computer auch hard¬
wareseitig zu erweitern. Dabei
wurde Wert auf einfache, über¬
schaubare Schaltungen gelegt,
die zum größten Teil ln Form von
Bauanleitungen vorgestellt wer¬
den. Die Platinen liegen, soweit
möglich, als einseitige Entwürfe
vor, um den Nachbau zu erleich¬
tern. Dafür müssen u. U. einige
Drahtbrücken in Kauf genommen
werden. Bei Notwendigkeit zwei¬
seitiger Platinen wurden Löt¬
inseln für Schaltkreise auf der
Bestückungsseite konsequent ver¬
mieden. Damit ist im Falle eines
Bauelementedefekts ein leichtes
Entfernen des Schaltkreises ohne
Beschädigung der Platine mög¬
lich. Die erforderlichen Durch¬
kontaktierungen werden mit
Drahtstücken, z. B. Anschlu߬
drähten von Widerständen, reali¬
siert, die beidseitig zu verlö¬
ten sind.
Auf Verträglichkeit der Module
mit dem weit verbreiteten ZX-
Drucker wurde geachtet, obwohl
mit der beschriebenen PIO-Karte
und der. entsprechenden Software
eine Centronics- sowie eine
V. 24-Schnittstelle zur Verfügung
steht, Die Verträglichkeit mit
dem Interface 1 und den aus
heutiger Sicht als veraltet
geltenden Microdrives ist nicht
in Jedem Fall gesichert. Aller¬
dings fällt es dem erfahrenen
Amateur sicher leicht, die
Adreßselektlon seinen Wünschen
entsprechend zu ändern. Damit
wäre dann auch eine Anpassung
der Module an ahdere U-ööO-Com-
' putersysteme denkbar.
Soweit erforderlich und vom
Umfang her möglich, wird die
entsprechende Treibersoftware
mit angegeben. Diese Programme
stellen Minimal Varianten dar.
Sie lassen damit breiten Spiel¬
raum für die Anpassung an die
Aufgabenstellung beim Anwender,
5. 1. Der Erweiterungsanschluß
des ZX Spectrum
Auf der Rückseite des ZX Spec¬
trum stehen auf einem 2 x 28po-
ligen direkten Steckverbinder
alle für das Betreiben von Hard¬
warezusätzen erforderlichen Si-
17
Tabelle 5. 1 Der Bus Steckverbinder des
ZX Spectrum
Signal
Anschluß
Signal
Al 5
1A
1B
A14
Al 3
2A
2B
Al 2
D7
3A
3B
+ 5 V
n. a.
4A
4B
+ 9 V
Verpol-
5A
5B
Verpol
schütz
schütz
DO
6A
6B
Masse
Dl
7A
7B
Masse
D2
8A
1 8B
Takt
D6
9A
9B
AO
D5
10A
10B
Al
D4
11A
HB
Al
D3
12A
12B
A3
INT
13A
13B
IORQGE
NMI
14A
14B
Masse
HALT
15A
15B
VIDEO
MREQ
16A
16B
Y
IORQ
17A
17B
V
RD
18A
18B
U
WR
19A
19B
BUSRQ
-5 V
20A
2 OB
RESET
WAIT
21A
21B
A7
+ 12 V
22A
22B
A6
-12 V
23A
23B
A5
Ml
24A
24B
A4
RFSH
25A
25B
ROMCS
A8
26A
26B
BUSAK
A10
27A
27B
' A9
n. a.
28A
28B
All
(n. a. - nicht angeschlossen)
gnale und Spannungen zur Verfü¬
gung. Der Steckverbinder besteht
aus einer oberen (Bauteil-) und
einer unteren (Löt-) Seite der
Computerplatine. Die Anschlüsse
tragen die Bezeichnung 1A bis
28A auf der Oberseite und 1B bis
28B auf der Unterseite (Tabelle
5.1).
Die Funktion der CPU-Signale
wird als bekannt vorausgesetzt.
Deshalb wird an dieser Stelle
nur auf die Spannungsversorgung
und die für den ZX Spectrum spe¬
zifischen Signale eingegangen:
-5 V (20A): Es liegt eine Span¬
nung von -5 V an, die von einem
internen Transverter erzeugt
wird. Diese Spannung darf extern
nur mit 5 mA belastet werden.
+12 V (22A) ; Diese Spannung wird
ebenfalls von dem genannten
Transverter erzeugt. Sie darf
mit höchstens 10 mA belastet
werden.
-12 V (23A): Dieser Anschlup
führt eigentlich Keine -12 V,
sondern eine hochfrequente Wech¬
sel Spannung, aus der die -12 V
aber mit einer Zusatz Schaltung
gemäß Bild 5. 1 gewonnen werden
Können. Belastbar ist dieser An¬
schluß mit etwa 10 mA.
Anschluß 23 A °-
GND *-
10/16
270
° Ul '
2
t i - 1 1
l “10/16 2
i
O - -
i — L. — .
- 0
1 Masse
• 2xSAY17 SZX 21/12
Bild 5. 1 Schaltung zur Gewin¬
nung der -12 V
+5 V (3B): An diesem Anschluß
steht die intern stabilisierte
Versorgungsspannung zur Verfü¬
gung. Diese Spannung Kann extern
mit etwa 200 mA belastet werden,
bei höherer Stromentnahme Kann
es zu thermischen Problemen Kom¬
men.
+9 V (4B): Vom Netzteil gelie¬
ferte Rohspannung. Mit einer
externen Stabi 1 isierungsschal -
tung Kann die Betriebsspannung
für Verbraucher mit höherer
Stromaufnahme (bis etwa 0, 5 A)
gewonnen werden.
IORQGE (13B): Dieses Signal
stellt die logische AND-VerKnüp-
fung der Prozessor-Signale IORQ
und AO dar. Es signalisiert
einen aKtivierten ULA-Schalt-
Kreis.
VIDEO, Y, V, ü (15B bis 1ÖB) :
Diese Signale stehen im Zusam¬
menhang mit der Bildsignalauf-
bereitung des ZX Spectrum.
ROMCS (ROM CHIP SELECT, 25B) :
Bei H-Pegel an diesem Anschluß
wird das interne ROM abgeschal¬
tet. Es Können dann externe ROMs
oder RAMs mit anderen Programmen
eingeblendet werden.
5. 2. Reset-Taste
Die Reset-Taste legt bei Betäti¬
gung den low-aKtiven RESET- Ein¬
gang des Z 30 auf Masse. Mit der
L/H-FlanKe, also bei Loslassen
der Taste, beginnt der Prozessor
(neben einigen anderen AKtivi tä¬
ten) mit dem Abarbeiten des Pro¬
gramms ab Adresse 0000.
Dadurch wird das gesamte im RAM
befindliche Programm gelöscht,
da im Betriebssystem des Spec¬
trum eine Initialisierungsrou¬
tine eingebaut ist. Insofern ist
diese Taste nur als äußerste
"Notbremse” zu verstehen, wenn
der Rechner in einer endlosen
Schleife festhängt und die Ta¬
staturabfrage nicht mehr funk¬
tioniert. Immerhin dient sie
aber der Schonung des schwer
beschaffbaren HohlstecKers für
die 9-V-Versorgung, mit dem
bisher Reset ausgelöst wurde.
Bei Ersatz des internen ROM
durch einen EPROM Kann die ge¬
nannte Routine vorteilhaft ent¬
fernt werden. Seit einiger Zeit
sind auch sogenannte ISO-ROMs
verfügbar, die mit Reset ohne
Programmverlust arbeiten.
Zwischen dem Reset-Anschluß der
CPU und Masse ist ein EleKtro-
lytKondensator angeordnet, der
in Verbindung mit einem Wider¬
stand für das Einschal treset
sorgt. Dieser Kondensator wird
beim Betätigen der Reset-Taste
Bild 5. £ Anschluß einer RESET -
Taste
19
kurzgeschlossen. Es ist deshalb
empfehlenswert, in Reihe mit der
Reset-Taste einen Widerstand von
10 bis 100 Q zur Strombegrenzung
zu schalten. Bei Einsatz einer
Elastomertaste (z. B. TSE 15) ist
das nicht erforderlich, da deren
Kontaktwiderstand im geschlosse¬
nen Zustand nicht Null ist.
5. 3. Video-Anschluß
Das direkte Einspeisen des Vi¬
deo-Signals in einen Fernsehemp¬
fänger ergibt ein wesentlich
schärferes und kontrastreicheres
Bild, da der gesamte HF-Trakt
sowohl im Fernsehgerät als auch
im Computer umgangen wird. Dazu
ist ein kleiner Eingriff ln das
Fernsehgerät notwendig, der von
einem Fachmann oder versierten
Amateur auszuftlhren ist. Voll-
transistorisierte Fernsehempfän¬
ger bieten i. allg. die Gewähr
der Netztrennung. Allstromgeräte
sind aus Sicherheitsgründen
unbedingt Uber einen Trenntrans¬
formator zu betreiben! Sollte
das Video-Signal des ZX Spectrum
auf dem Bussteckverbinder nicht
nachweisbar sein, ist im Inneren
des Geräts eine Drahtbrücke
nachzurüsten, die im Be¬
st ückungs druck der Platine ge¬
kennzeichnet ist. Die einfachste
Variante ist die direkte Verwen¬
dung des Video-Signals vom An¬
schluß 15B. Oft reicht jedoch
der dort anstehende Pegel für
eine ausreichende Aussteuerung
des Fernsehempfängers nicht aus.
In diesem Falle ist die Verwen¬
dung einer Puff er stufe ange¬
bracht, die gleichzeitig für die
richtige Anpassung des Wellenwi¬
derstands sorgt. Bild 5. 3 zeigt
eine solche Schaltung. In man¬
chen Fällen kommt es bei Verwen-
Blld 5. 3 Puffers tu fe für das
Video-Signal
düng des Video-Signals vom Bus¬
steckverbinder zu mehr oder we¬
niger stark ausgeprägten Bild¬
störungen (Flimmern, Moire).
Hier schafft oft die Auskopplung
des Video-Signals direkt am Mo¬
dulator schon Abhilfe, manchmal
kann Jedoch Abschalten des Farb¬
trägers nötig werden, wie es ln
[7] beschrieben wurde.
5. 4. Lichtstift
Als Lichtstifte oder Lichtgrif¬
fel werden Computer-Zusatzgeräte
bezeichnet, die in Verbindung
mit einem entsprechenden Steuer-
programm das Auslösen von Reak¬
tionen durch Zeigen auf bestimm¬
te Stellen des Computermonitors
ermöglichen. Wenn es Elektronik
und Steuerprogramm erlauben, die
Positionsbestimmung des Licht¬
stiftes während eines Bildauf-
baus zu be werks t e 1 1 1 g en , kann
mit dem Lichtstift auf dem Moni-
SP 201
l
T
I
— o +5-.+15V
22 n
-oAusg.
1/A V 4093
Bild 5. 4 Schaltung des Licht¬
stiftes mit CMOS-Gatter
20
Bild 5. 5 Platine für die Schal¬
tung nach Bild 5. 4
tor z. B. wahlfrei gezeichnet
werden. Die hier heschri ebenen
beiden Schaltungen halten in
Verbindung mit dem verwendeten
Programm diesen Echtzeitforde¬
rungen nicht stand. Die Posi¬
tionsbestimmung erfordert etwas
mehr Zeit, dennoch läßt sich die
Wirkungsweise von Lichtstiften
damit gut demonstrieren. Die
Schaltung eines Lichtstiftes für
die beschriebenen geringen An¬
forderungen ist sehr einfach
aufgebaut. Sie besteht aus einem
einzigen Gatter eines CMOS-
Schmitt-Trigger-NAND, an den ein
Fototransistor mit einem Wider¬
stand zur Arbeitspunkteinstel¬
lung angeschlossen ist.
Stromlauf plan, Leiterbild und
Bestückungsplan sind in den Bil¬
dern 5.4 bis 5.6 dargestellt.
Die Leiterplatte ist so gestal¬
tet, daß sie in ein Gehäuse
eines leeren Faserschreibers
(Steppke-Stift oder Pfau-Dubbel)
eingebaut werden kann. Ange¬
schlossen wird der Lichtstift an
die EAP-Buchse des Spectrum ,
wodurch der Busstecker für wei¬
tere Anwendungen frei bleibt.
Die Spannungsversorgung kann
vorteilhaft durch eine Flachbat¬
terie erfolgen, natürlich sind
die stabilisierten 5 V des Spec¬
trum ebenso geeignet. Die Funk¬
tion der Schaltung ist wegen der
geringen Anzahl der Bauelemente
leicht zu verstehen. Der Eingang
des CMOS-Gatters liegt durch das
Trimmpotentiometer bei unbe¬
leuchtetem Fototransistor auf L-
Potential, sein Ausgang damit
auf H. Bei beleuchtetem Foto¬
transistor wird dieser leitend
und die Verhältnisse kehren sich
um. Zur Begrenzung des Ausgang s-
stroms des Gatters sind im Zu¬
sammenspiel mit dem Spectrum
keine weiteren Maßnahmen erfor¬
derlich. Sollte für andere An¬
wendungen eine Strombegrenzung
nötig werden, ist der mit einem
Pfeil gekennzeichnete Leiterzug
auf der Platine zu durchtrennen
und ein entsprechender Wider¬
stand einzufügen. Die unbenutz¬
ten Gattereingänge sind auf
definiertes Potential zu legen.
Eine ebenfalls mögliche, aber
nicht ganz so empfindliche
Lichtstift-Schaltung mit dem
Initiator schal tkrels A 301 D
zeigt das Bild 5. 8. Der Wider¬
stand zwischen den Anschlüssen 2
und 4 zur Festlegung der Hyste¬
rese kann gegebenenfalls auch
entfallen. Das ist in Abhängig¬
keit vom verwendeten Monitor und
der eingestellten Grundhellig¬
keit experimentell zu ermitteln.
In beiden Schaltungen kann der
Bild 5. 6 Bestückungsplan der Platine nach Bild 5. 5
■i:
Bild 5. 7 Musteraufbau des Lichtstiftes
21
SP 201^
13 1
i ■
X
[J680
3
A301
10
• ° t
100k jj
n
€
9
= 22n
Bild 5. 6 Lichtstiftschaltung
mit A 301
Fototransistor durch lichtun¬
durchlässigen LacK etwas gegen
seitlich einfallendes Fremdlicht
geschützt werden. Das Trimmpo-
tentiometer ist hei gestartetem
Programm "Lpen 48" in die Mitte
des Arbeitsbereichs zu stellen.
Das ist der Bereich, in dem die
Pfeile auf dem Bildschirm blin¬
ken. Die weitere Kalibrierung
erfolgt nach den vom Programm
gegebenen Hinweisen. Vor An¬
schluß der Betriebsspannung ist
das Potentiometer auf größten
Widerstandswert zu stellen! Das
Programm MLpen 48" würde auf¬
grund seines ÜTnfangs den Rahmen
dieses Buches sprengen. Es ist
aber mittlerweile so weit ver¬
breitet, daß ein Abdruck nicht
unbedingt nötig erscheint. Des¬
halb wird an dieser Stelle nur
die Programmbeschreibung gege¬
ben. Ein Bildschirmpunkt wird
angewählt, indem der Lichtstift
an diese Stelle gehalten und
eine beliebige Taste gedrückt
wird. Daraufhin wird das große
Kreuz an diese Stelle bewegt.
Die Optionen des Bi ldschirmmenüs
werden ebenso angewählt. In die¬
ser Beschreibung wird das große
Kreuz mit + und das kleine Kreuz
mit x bezeichnet.
Bedeutung der Optionen:
A (arc) zeichnet einen Bogen von
x durch die letzte Position von
+ zur aktuellen Position von +
B (border) BORDER -Farbe ändern
C (circle) zeichnet einen Kreis
durch + mit Mittelpunkt x
D (draw) zeichnet eine Linie
zwischen beiden Kreuzen
E (erase) löscht die letzte
Aktion
F (fill) füllt ein umrandetes
Gebiet, in dem sich + befindet,
mit INK -Farbe
H (hand) erlaubt beliebiges
Zeichnen mit dem LP
I (Ink) INK -Farbe ändern
K (keep) bedeutet, daß bis zu
vier Bildschirme im RAM abge¬
speichert werden können
L (letters) schreibt Text ab der
Stelle +
M (move) bewegt das kleine Kreuz
x auf das große Kreuz +
H (new) löscht den Bildschirm
P (paper) PAPER -Farbe ändern
R (rectangle) zeichnet ein
Rechteck zwischen den Kreuzen
R (restore) bedeutet, gespei¬
cherte Bilder können einzeln
oder zyklisch abgerufen werden
T (tape) bedeutet, Bildschirme
können vom/ auf Band geladen
werden.
5. 5. Joystick-Anschluß
Spielhebel oder Joysticks sind
zumindest für Kleincomputer fast
unentbehrliche Zusatzgeräte. Sie
lassen sich sehr vielseitig ver¬
wenden, obwohl ihr Haupteinsatz¬
gebiet die Steuerung von Compu¬
terspielen sein dürfte.
Während die Realisierung eines
Joysticks an sich ein rein me¬
chanisches Problem ist, erfor¬
dert der Anschluß des Joysticks
an den Computer zumeist etwas
Zusatzhardware, die ln der
Grundversion nicht in allen
Kleincomputern enthalten ist. Im
folgenden werden einige Varian-
22
ten des Joystick-Anschlusses an
den ZX Spectrum vorgestellt, die
sinngemäß auch für andere Compu¬
ter-Typen verwendet werden kön¬
nen.
5. 5. 1. Joystick-Anschluß ohne
Zusatzhardware
In den meisten Fällen ist die
Steuerung der Bewegungsabläufe
auf dem Bildschirm auch Uber die
Tastatur möglich. Es liegt daher
nahe, den Joystick einfach den
entsprechenden Tasten parallel
zu schalten. Diese Methode er¬
fordert zwar genaue Kenntnisse
über die Anordnung der Tasten in
der Tastaturmatrix und darüber
hinaus einen Eingriff in den
Rechner, bietet aber dafür den
Vorteil kaum zu übertreffender
Einfachheit.
Bild 5.9 zeigt die inzwischen
international genormte Belegung
des Steuerknüppel -Anschlusses.
Daraus geht hervor, daß neben 4
Anschlüssen für die Richtungs¬
wahl und einem für den Trigger
("Schußknopf " ) nur eine gemein-
1 hoch
2 runter
3 links
4 rechts
6 Trigger
8 gemeinsam
Bild 5. 9 Genormte Anschlußbele¬
gung des JoystlcK-StecKers
same Leitung vorhanden ist. Bei
der Parallelschaltung zur Tasta¬
tur ist dem Rechnung zu tragen,
so daß die verwendeten Tasten
alle an einer gemeinsamen Spal¬
ten- bzw. Zeilenleitung ange¬
schlossen sein müssen. Im Bild
5. 10 ist die Tastaturmatrix des
ZX Spectrum wiedergegeben. Aus
dem eben erwähnten Grund ist
eine Parallelschaltung zu den
Cursor-Tasten 5 bis ö nicht
möglich. Deshalb werden die
Tasten 6 bis 9 für die Rich¬
tungssteuerung und die Taste 0
für den Trigger verwendet. Auf
diese Weise ist sogar ein zwei¬
ter Joystick anschließbar, der
den Tasten 1 bis 5 zugeordnet
wird. Bild 5. 11 stellt die Ver¬
bindung der beiden Joystick-
Buchsen mit den Tastatur Steck¬
verbindern auf der Platine dar.
All — w-
0£
A10
A 9
Caps Shift
A 8 — »
2r
V(l
Zr Xr
Je
Gr
Yi
r.6 r, 7 r.8 r.9 rr*)
■U -■> nQ.
-,N
-L 2
i L \
Ente'
Symbol
•i Stoff
43-
43-
43-
Space
+3-
A12
A 13
A 14
A 15
Bild 5. 10 Tastaturmatrix des ZX Spectrum
7 8 9
1 2 3 4 5
'
23
Joystick 1
Joystick 2
5. 41 31211
l9*8f7°6f
4
'fyc/
rj
(54
3t2
• 6 6 ö
• ooo
9 8j^.
H]
Anschlüsse
Platine
ZX SPECTRUM
U.
M.
X.
Y.
M.
Y:
V
Y.
Y.
Y.
9 9 9 9
Bild 5 , 11 Direktanschluß zweier Joysticks an die ZX Spectrum-
Tastatur
Die Abfrage der Steuerknüppel
geschieht mit zwei IN-Befehlen
in Basic oder Maschinencode; der
Stellung der Joysticks entspre¬
chend werden dabei die Datenbits
0 bis 4 gesetzt und gleichzeitig
wahr genommen. Damit ist also die
Realisierung relativ schneller
Grafik-Funktionen möglich. Ta¬
belle 5.2 zeigt das noch einmal
ausführlich. Bei kommerzieller
Software wird oft ein Menü mit
Tabelle
frage
5. 2
IN-Befehle
zur
JoystlcK-Äb-
Joy¬
Taste
Befehl
Daten- Funktion
stick
bit
1
1
IN
61486
0
links
1
2
IN
61486
1
rechts
1
3
IN
61486
2
runter
1
4
IN
61486
3
hoch
1
5
IN
61486
4
Trigger
2
6
IN
61438
4
links
2
7
IN
61438
3
rechts
2
8
IN
61438
2
runter
2
9
IN
61438
1
hoch
2
0
IN
61438
0
Trigger
24
vers clii e denen Joystick-Normen
angeboten. Für die vorgestellte
Anschlußvariante ist die Option
Sinclair' zu wählen.
5. 5. 2. Joystick-Anschluß über
Peripherie-Schaltkreise
Trotz des geringen Aufwands bei
der Paral lei schal tung des Joy¬
sticks zur Rechnertastatur gibt
es einige Gründe, die für einen
Anschluß der Spielhebel über
eine Anpaßschal tung sprechen.
Das sind unter anderem:
- gemeinsamer Anschluß des Joy¬
sticks liegt auf definiertem
Potential,
- verschiedene Anschlußnormen
sind nur so realisierbar,
- Eingriff in den Rechner ent¬
fällt.
Im folgenden wird deshalb ge¬
zeigt, wie ein Joystick über ein
Register an den Datenbus des ZX
Spectrum angeschlossen werden
kann. Dieses Register wird bei
einer bestimmten Kombination
von Adressen und Steuersignalen
des Prozessors aktiviert. Dazu
dient ein Adreßdekoder.
Bild 5. 12 zeigt das Prinzip
eines Joystick-Anschlusses ent¬
sprechend der Sinclair- Norm.
Dieses Interface bildet im
Prinzip die Tastaturabfrage für
die interessierenden Tasten
DL032
(Sind alr-Norm)
nach, indem es die Steuersignale
IORQ (Ein-/Ausgabe-Anforderung) ,
RD (Prozessor will Daten lesen)
und die Adressen AO (ULA aktiv)
und Al 2 (Tastatur-Reihe 6 bis 0)
auswertet und bei gleichzeitiger
Aktivierung das Register selek¬
tiert. Damit wird ein Bitmuster,
das der Stellung des Joysticks
entspricht, auf den Datenbus
gelegt.
5. 5. 3. Kempston- JoysticK
Für den Anschluß von Joysticks
an den ZX Spectrum gibt es ver¬
schiedene Normen, von denen wohl
die Kempston^ Norm die weiteste
Verbreitung gefunden hat. Diese
Norm legt fest, daß die Stellung
des Joysticks über die Port-
Tabelle 5.3 IN-Befehle zur Abfrage des
Kemps t on- Joy s t i cks
Befehl
Datenbit
Funktion
IN 223
0
links
IN 223
i
rechts
IN 223
2
runter
IN 223
3
hoch
IN 223
4
Trigger
25
Bild 5. 13 Schaltung eines Kempston- JoysticK- Interfaces
adresse DFH (223 dezimal) ein¬
lesbar ist und dort durch ge¬
setzte Bits 0 bis 4 repräsen¬
tiert wird. Die Zuordnung der
gesetzten Bits zur Stellung des
Joysticks kann der Tabelle 5.3
entnommen werden.
Das Kempston- Interface besteht
ebenfalls aus einem Register und
einem Adreßdekoder. Als Register
kommt hier der Bustreiber-
Schaltkreis DS 3236 zum Einsatz.
Dessen Mikroprozessorseite (An¬
schlüsse 1 bis 8) und Datenbus¬
seite (Anschlüsse 12 bis 19)
wurden für diese Anwendung ver¬
tauscht. Dadurch ist es möglich,
an dieser Stelle auch den Typ
DS 3232 einzusetzen. Da die
Datenübertragung beim Joystick-
Anschluß generell nur in der
Richtung Peripherie - > Prozes¬
sor erfolgt, spielt die geringe¬
re Stromergiebigkeit des DS 3236
auf der Mikroprozessorseite kei¬
ne Rolle. Allerdings ist die ty¬
pische Stromaufnahme des DS 3266
etwa um 20 mA geringer als beim
Typ 3232, Bei Änderung der
Platine können natürlich auch
andere Register mit Trl-state-
Ausgängen verwendet werden.
Erfolgreich getestet wurde in
diesem Zusammenhang auch der
CMOS -Treiber V 40093. Zu beach¬
ten ist dabei, daß dieser
26
Bild 5. 15 Bestückungsplan der Platine nach Bild 5. 14
r~a
£Q Stecher 2x29*^ g N L
Schaltkreis die Daten inver¬
tiert. Deshalb ist der gemein¬
same Anschluß des Joysticks an
Masse zu legen. Das gilt auch
bei Verwendung der invertieren¬
den Bustreiber DS 6265 und
DS 6267.
Als Adreßdekoder arbeitet in
dieser Schaltung ein DL 002 D.
Er wurde aufgrund seiner besse¬
ren Verfügbarkeit dem DL 052 D
vorgezogen. Der Dekoder selek¬
tiert das Register immer dann,
wenn der Prozessor eine Eingabe¬
anforderung bezüglich der Adres¬
se 5 sendet (IORQ, RD und A5
führen Low-Pegel). Somit wird,
bedingt durch die Widerstände R2
bis R9, das Datenwort 00H an den
Prozessor gegeben, sofern der
Joystick unbetätigt ist. Im
Falle einer Betätigung führen
die entsprechenden Leitungen
über RI H-Pegel. Für diese An¬
wendung würde auch ein 5 Tbit-
Register ausreichen. Das Einle¬
sen von 8 bit (bit 5 bis 7 sind
dann immer 0) bietet aber die
Gewähr, daß auch Programme, die
nicht nur die unteren 5 bit
auswerten, mit dem Interface
Zusammenarbeiten können. Neben
dem Joystick- Interface wurden
auf der Platine noch eine Re¬
set-Taste und ein Video-Anschluß
untergebracht. In den Bildern
5. 13 bis 5. 15 sind Schaltung,
Platinen-Layout und Bestückungs-
27
/
; 74 LS 244
<
J
<1
J
4
ff
<J
J
<j
(T
<1
ff
<1
ff
<1
jt
IN 4148
; 74 LS 367
<1
IT
<1
I
<1
JT
<1
JT
0
I
<1
ff
Kempsfon -
Joystick
8x4.7k
5x4>7k
+5Vo-
1 10 n
Sinclair—
Joystick
Bild 5. 17 dkJ tronlcs- Interface
plan des Kemps ton- Interfaces
dargestellt; im Bild 5, 16 ist
das auf gebaute Muster abgebil¬
det. Bild 5. 17 zeigt die Schal¬
tung eines Joystick-Interfaces
der Firma dK' tronlcs. Es reali¬
siert unter Verwendung von zwei
Registern einen Kemps ton- und
einen Sinclair- Anschluß. Für den
Schaltkreis 74 LS 367 kann der
pinkompatible V 40096 verwendet
werden.
5. 5. 4. Zusatzfuriktionen ftlr
Joysticks
Mit geringem Hardwareaufwand
sind 2 Erweiterungsfunktionen
für Joysticks realisierbar, die
insbesondere den Spielern unter
den Computerbesitzern einige
Erleichterungen verschaffen kön¬
nen. Es sind dies ein Trigger¬
generator (landläufig als Dauer¬
feuer bezeichnet) und ein NMI -
Generator (aus der internationa¬
len Literatur auch als Freezer
bekannt ) .
Der Triggergenerator wird zwi¬
schen Joystick und Anpaßelektro- '
nik geschaltet. Er erzeugt bei
Drücken der Triggertaste am
Joystick eine Impulsfolge, deren
Frequenz bei beiden vorgestell¬
ten Schaltungen zwischen 2 und
etwa 25 Hz einstellbar ist.
Wegen des geringen Umfangs der
Schaltungen lohnt die Anferti¬
gung einer speziellen Platine
kaum. Die Elektronik kann, auf-
gebaut auf einer Universal plati-
ne, direkt im Joystickgehäuse
untergebracht werden. In der
Schaltung nach Bild 5. 18 arbei¬
tet ein V 4093 als astabiler
Bild 5. 16 CMOS- Tri ggergenerator
28
Multivibrator. Für den 1-uF-
Kondensator sollte Kein EleKtro-
lytKondensator verwendet werden.
Die Stromauf nähme dieser Schal¬
tung beträgt etwa 1 mA. Das ist
ein Wert, der (für andere Anwen¬
dungen) auch viele Stunden Be¬
trieb mit einer Flachbatterie
garantiert.
In Bild 5. 19 ist ein 1 3, 555 eben¬
falls als astabiler Multivibra¬
tor beschältet.- Die Diode zwi¬
schen den Anschlüssen 6 und 7
ermöglicht den Angleich der H-
und L-Zeiten. Die beiden Schal¬
tungen benötigen Keinen Ab¬
gleich, Können aber durch Ände¬
rung der zeitbe stimmenden Bau¬
elemente den Erfordernissen des
Anwenders angepaßt werden. Je
nach Potential des gemeinsamen
Anschlusses am JoysticK wird der
Generator über die positive
Betriebsspannung oder die Masse¬
leitung eingeschaltet. Bei Ver¬
wendung des JoysticK-Anschlusses
nach Abschnitt 5. 6. 1. Können
diese Schaltungen nicht verwen¬
det werden, da hier der gemein¬
same JoysticK-Anschluß nicht auf
Masse oder +U;b liegt.
Im allgemeinen strebt man da¬
nach, daß der Computer seine t
Aufgaben so schnell wie möglich*
aus führt. Zu diesem ZwecK wird,
insbesondere bei größeren Syste¬
men, der MiKroprozessor durch
entsprechende Zusatzhardware
68k 5M
Bild 5 . 19 Triggergenerator mit
B 555
(z. B. ArithmetiK-Prozessor, Vi¬
deo-Controller) entlastet.
Auch eine Erhöhung der TaKtfre-
quenz zielt in diese Richtung,
erfordert aber Bauelemente, die
den Kürzeren TaKt Zeiten gerecht
werden. In einigen Fällen Kann
es aber durchaus sinnvoll sein,
die AKtivitäten eines Computers
auch zu verlangsamen, um etwa
den Aufbau einer Komplizierten
GrafiK Pixel weise zu verfolgen,
Bewegungsabläufe auf dem Bild¬
schirm zu studieren oder in
Computerspielen Vorteile durch
längere ReaKtionszeit zu errei¬
chen. Für diese ZwecKe ist zu¬
nächst eine Verringerung der
TaKtfrequenz denKbar, Allerdings
bringt das mit Sicherheit einige
FunKtionen des Computers durch¬
einander, da z. B. Zeitschleifen
zur Synchronisation interner
Abläufe für die Normal -TaKtfre¬
quenz berechnet sind. Deshalb
wird hier eine andere Möglich-
Keit angeboten.
Um den Prozessor U 680 zu zwin¬
gen, seine derzeitige Arbeit
zugunsten eines anderen Program¬
mes zu unterbrechen, hat er 2
Eingänge, die mit INT und NMI
bezeichnet sind. Der Eingang INT
wird mit Low-Pegel aKtiviert,
der Eingang NMI durch eine
HL-FlanKe^ _ Während eine am
Eingang INT anliegende Inter¬
ruptanforderung durch die Soft¬
ware erlaubt oder abgewiesen
(masKiert) werden Kann, ist das
beim Eingang MI (deshalb Nicht
MasKierbarer Interrupt) nicht
möglich. Ein NMI zwingt den
Prozessor U 680 zu einem RESTART
ab Speicherplatz 66H. Der Be¬
fehlszähler wird automatisch in
den externen StacK gerettet, so
daß der Anwender nach Abarbei¬
tung der NMI -Service-Routine zum
unterbrochenen Programm zurücK-
29
kehren Kann. Dazu dient der Ma¬
schinenbefehl RETN (RETurn vom
NMI). Tabelle 5.4 zeigt die NMI -
Service -Rout ine des ZX Spectrum.
Offensichtlich war diese Routine
ursprünglich dazu gedacht, das
Programm in Abhängigkeit vom
Inhalt der Systemvariablen
NMI REG zu verzweigen. Durch
einen Kleinen Programmfehler ist
das aber nicht möglich. Abhängig
vom Inhalt der Systemvariablen
NMI REG Kann man lediglich einen
Kaltstart entsprechend RESET
ausführen (bei NMI REG = 0) oder
nichts passieren lassen (bei
NMI REG nicht - 0). Die Abarbei¬
tung des NMI -Programms erfordert
für letztgenannten Fall 92 Pro-
zessortaKte. Bei 3,5 MHz Takt-
frequenz beträgt die Länge einer
TaKtperiode etwa 286 ns. Daraus
läßt sich die Laufzeit der NMI-
Routine errechnen:
92*286 ns = 26, 3 [is . Wird der
Prozessor gezwungen, unmittelbar
nach Ablauf der NMI -Routine
einen neuen NMI auszuführen,
bleibt ihm Keine Zeit mehr für
das Abarbeiten seines eigentli¬
chen Programms. Es Kommt somit
zum Stillstand. Für praktische
Anwendungen ist es sinnvoll,
diesen "NMI -Generator" stetig
oder in Stufen einstellbar aus-
zuf Uhren. Damit ist es möglich,
nicht .so interessante Programm¬
teile in normaler Geschwindig¬
keit abzuarbeiten.
Um einen NMI alle 26,3 [xs auszu¬
lösen, ist theoretisch eine Im¬
pulsfolgefrequenz von 38 KHz er¬
forderlich. . Praktisch genügt
schon eine etwas geringere Fre¬
quenz, da das ULA im ZX Spectrum
hin und wieder den Takt anhält,
was einer geringeren mittleren
TaKtfrequenz gleichzusetzen ist.
Im Mustergerät wurde als obere
Grenzfrequenz 32, 5 KHz ermit¬
telt. Eine Erhöhung der NMI -
Impulsfolge über diese Frequenz
hinaus führt zum Systemabsturz,
da durch die am Anfang der NMI-
Routine abgearbeiteten PUSH-
Befehle der Stack den gesamten
RAM-Bereich überschreibt. Vor
Inbetriebnahme des NMI -Genera¬
tors muß zumindest in eine der
Systemvariablen 23728 und 23729
ein Wert eingetragen werden, der
von 0 verschieden ist. Diese
Systemvariablen sind im Handbuch
fälschlich -als nicht benutzt
angegeben.
Im Interesse einer möglichst
geringen Leistungsaufnahme des
NMI -Generator s werden eine CMOS-
Tabelle 5.4 NMI-Routine des ZX Spectrum
Adresse Code Marke Befehl
0066
F5
0067
E5
0068
2A
BO 5C
006B
7C
006C
B5
006D
20
01
006F
E9
0070
El
0071
Fl
0072
ED
45
NMI PUSH AF .
PUSH HL
LD HL, (NMIREG)
LD A, H
OR L
JR NZ, #70
JP (HL)
POP HL
POP AF
RETN
30
Bild 5. 20 CMOS -NMI -Genera t or
3.3k 100k
Bild 5. 21 NMI -Generator mit
B 555
und eine #-555- Version vorge¬
stellt.
Bild 5.20 zeigt die CMOS-Version
des NMI -Generators. In dieser
Schaltung arbeitet ein V 4011
als astabiler Multivibrator mit
veränderlicher Frequenz. Mit dem
Widerstand RI ist bei auf
größten Widerstandswert ein¬
gestelltem Potentiometer die
Frequenz auf 32,5 KHz einzustel¬
len. Der Generator Kann mit dem
an einem Gattereingang befindli¬
chen Schalter außer Betrieb ge¬
setzt werden. Der Ruhepegel (H
oder L) hängt davon ab, welches
Gatter dafür verwendet wird. Da
der NMI flanKenge triggert ist,
sind beide Ruhepegel möglich. Im
Interesse besserer FlanKensteil-
heit Kann für den V 4011 auch
der pinKompatlble V 4093 einge¬
setzt werden. Bei Verwendung
eines (allerdings nicht pinKom-
patiblen !) NOR-Gatters V 4001
müssen die unbenutzten Gatter¬
eingänge an Masse gelegt werden.
Die beiden anderen Gatter Können
vorteilhaft zur Realisierung der
DauerfeuerfunKtion verwendet
werden, so daß für beide Zusatz¬
schal tungen .nur ein Schal tKrels
erforderlich ist. Im Bild 5,21
ist ein NMI -Generator mit dem
B 555 dargestellt. Diese Schal¬
tung erzeugt mit der vorgeschla¬
genen Dimensionierung Frequenzen
zwischen 3 und 30 KHz. Die Fre-
quenzKonstanz ist etwas besser
als bei der CMOS -Variante, al¬
lerdings ist auch die Außenbe¬
schaltung umfangreicher. Die
Stromaufnahme liegt bei 5 mA.
Durch die Verwendung des Doppel -
timers B 556 sind auch hier bei¬
de Zusatz schal tungen mit einem
Schal tKreis realisierbar.
Die Verwendung von Generatoren
mit TTL oder anderen LogiKfami-
lien ist natürlich ebenso mög¬
lich, bietet aber gegenüber den
beschriebenen Keine entscheiden¬
den Vorteile. DenKbar sind auch
"Intel llgente" Lösungen, z. B,
die Verwendung eines CTC-Schalt-
Kreises in der Betriebsart Zeit¬
geber.
5. 6. Parallel -Schnittstellen
5. 6. i. Parallel-Schnittstellen
mit Registerschalt-
Kreisen
Unter Nutzung von Bustreiber¬
schal tKreisen, Auf fangregi stern
(Latches) oder gemeinsam getaK-
teten Flip-Flops ist der Aufbau
eines parallelen Ein-/Ausgabe-
ports sehr einfach möglich. Mit
BustreiberschaltKreisen entsteht
dabei sogar der Vorteil einer
weitaus höheren Stromergiebig-
Keit des Ausgabeports gegenüber
der Verwendung von Standard-
Peripheriebausteinen, Der Ein¬
satz solcher Ports bietet sich
31
D0
D7
RD
WR
A0
A7
1ÖRÖ
Bild 5.22 Parallelport mit zwei
Bus treiber schal tkreisen
( Prinz 1 p)
dekoders DS 8205 eindeutig, Der
Einsatz von CMOS -Schaltkreisen
ist bei der hohen Taktfrequenz
des ZX Spectrum insbesondere bei
nur 5 V Betriebsspannung nicht
generell zu empfehlen. Die auf-
gebauten Versuchsmuster zeigten
aber bei Einsatz getypter Bau¬
elemente keine unsichere Ar¬
beitsweise. Zum sicheren Errei¬
chen des H-Pegels der CMOS-
Schaltkreise sind an * den Über¬
gängen TTL-CMOS Pul 1 -up-Wider-
stände erforderlich.
DP)
Dl
D 2
DB
A6
A 5
A U
iÖRQ
A7
A0
AI
A 2
A3
+5V
Bild 5.23 4-blt-Paral lelport
ml t V 4042
also immer dann an, wenn die
Programm! erbarkeit der Eigen¬
schaften der Schnittstelle nicht
zwingend notwendig ist. Die
Schaltung nach Bild 5.22 stellt
unter Einsatz von 2 Bustreiber¬
schalkreisen Jeweils 8 Ein- und
Ausgänge bereit. Dabei wird nur
eine Adreßleitung in die Adres¬
sierung der Schnittstelle einbe-
zogep (Stichleitungsprinzip). Im
Bild 5.23 ist eine 4 bit breite
Parallel Schnittstelle unter Ver¬
wendung eines CMOS-Regi sters
dargestellt. Die Adreßselektion
ist durch Verwendung, des Adre߬
5. 6. 2. Parallel -Schnittstelle
mit der PIO U 655
Die Schaltung im Bild 5.24 zeigt
den Anschluß einer PIO U 855 an
den ZX Spectrum. Wegen der Viel¬
zahl der Verbindungen und der
relativ willkürlichen Anordnung
der PIO-Anschlüsse ist eine
zweiseitige Leiterplatte erfor¬
derlich, Die Leiterzüge auf der
Bestückungsseite sind aber alle
horizontal und parallel angeord¬
net, so daß sie sich auch durch
Drahtbrücken ersetzen lassen.
Wie auch bei den anderen vorge¬
stellten Baugruppen wird eine
vollständige Adreßdekodierung
verwendet. Unter Fortfall des
Adreßdekoders IS2 kann jedoch
auch das Stichleitungsprinzip
zur Anwendung kommen. Dazu ist
die auf der Bestückungsseite der
Platine gekennzeichnete Draht -
brücke einzusetzen. Das gilt
besonders dann, wenn keine wei¬
teren Zusatzbaugruppen am Rech¬
ner betrieben werden. Der Adre߬
dekoder wird Uber den low- akti¬
ven Eingang El nur dann freige¬
geben, wenn das ULA (Adresse AO)
und der ZX-Printer (Adresse Al)
nicht angesp^ochen werden. Er¬
reicht wird das durch ein Gatter
$
32
SRD7 -|
ardyU
A0...A7
ÄSTB
IEI
HO
od.
B0...B7
BRDY
+5V o -
Bild 5 . 24
f5V
= C2
22u/16V lOÖn
PIO-Anschl uß an den ZX
Spectrum
des Schaltkreises IS3. Die
Adreßleitungen A2, A3, A6 und A7
sind an den Dekoder geführt und
bilden den Gerateauswahl impul s
(CS) für die PIO. Die Adressen
A4 und A5 sind direkt mit der
PIO verbunden. Sie dienen zur
Auswahl von Kanal A oder B bzw.
zur Interpretation der empfange¬
nen Daten als Steuer- oder Da¬
tenwort. Nach Einschalten der
Betriebsspannung geht die PIO
U 655 automatisch in den RESET -
Zustand (Power-on-Reset ) . Dieser
Zustand ist gekennzeichnet
durch:
Bild 5.25 Layout (Leiterseite) für die PIO-Karte
33
- rückgesetzte Kanal ausgabere-
gister,
- NICHT rückgesetztes Vektor-
adressenregister.
Die PIO verfügt aufgrund der Be¬
grenzung der Anschlußzahl auf 40
über keinen RESET-Anschluß. Da¬
her wurde eine andere Möglich-
Blld 5.27 BestücKungsplan
- rückgesetzte Kanal maskierungs-
register,
- hochohmige Kanal datenlei tun -
gen,
- inaktive READY-Leitungen (low-
Zustand) ,
- PIO befindet sich in Betriebs¬
art 1 (Byte-Eingabe),
34
.V : r • fe
j&iid 5.23 Musteraufbau der PIO-Karte
CPU-RESET
CPU-MT
Bild 5. 29 Schaltung zum Rück¬
setzen der P10
keit vorgesehen, die PIO unab¬
hängig vom Power-on-Reset in den
Rücksetz zustand zu bringen. Die¬
se besteht darin, bei inaktiven
Signalen RD und IORQ mindestens
zwei Taktperioden lang ein akti¬
ves Mf-Signal anzulegen. Das
läßt sich mit einer zusätzlichen
Gatterschaltung gemäß Bild 5. 29
erreichen. In der Schaltung nach
CHS-
PI0-M1
Tabelle 5,5 Belegung des Anwendersteck¬
verbinders des PIO-Moduls
Kontakt
A-Ebene
B-Ebene
1
IEI
IEO
2
ARDY
BRDY
3
ASTB
BSTB
4
AO
BO
5
Al
Bl
6
A2
B2
7
A3
B3
8
A4
B4
9
A5
B5
10
A6
B6
11
A7
B7
12
Masse
+ 5 V
13
Masse
+ 5 V
35
Bild 5. 24 sind dafür zwei
weitere Gatter des Schal tkreises
IS3 vorgesehen.
Zu beachten ist hei allen Anwen¬
dungen, daß die Porti ei tungen
der PIO nur Jeweils eine TTL-
Last treiben Können. Gegebenen¬
falls sind entsprechende Trei¬
berschal tKr eise vorzusehen.
Entsprechend der Beschaltung des
Adreßdekoders ergibt sich für
die PIO folgende Adr eß Zuordnung:
143 (8FH) Port A Daten
159 (9FH) Port B Daten
175 (AFH) Port A Steuerung
191 (BFH) Port B Steuerung
Die Überprüfung der Funktion der
PIO-Karte kann mit Basic-IN-
bzw. OUT-Befehlen an die ent¬
sprechenden Adressen vorgenommen
werden. Die Belegung des 2 x 13-
po 1 igen Anwendersteckverbinders
ist Tabelle 5. 5 zu entnehmen.
5. 6. 3. Centronlcs-Schnlttstel le
Mit einem entsprechenden Steuer¬
programm ist es über die PIO re¬
lativ einfach möglich, eine Par¬
allelschnittstelle für einen
Drucker zu realisieren. Versuche
haben gezeigt, daß eine PIO
durchaus in der Lage ist, den
Drucker über eine bis zu zwei
Meter lange Leitung ohne Verwen¬
dung zusätzlicher Treiberschal t-
kreise zu bedienen. Eine sehr
weit verbreitete Norm für solche
Schnittstellen ist die der Firma
Centronics . Es handelt sich um
eine bitparallele, byteserielle,
uni direkt ionale Schnittstelle,
deren Signale im Bild 5. 30 wie¬
gegeben werden.
Für praktische Anwendungen genü¬
gen Jedoch neben den Datenlei¬
tungen bereits zwei Steuer 1 ei -
tungen für den Betrieb eines
Druckers mit Centronlcs-Schnltt-
Schutzerde
GND
Daten Bit 0...7
D0...7
:>
Empfangsauslösung
STB
>
<i
Empfangsbestätigung
ACKN
<
Empfänger beschäftigt
BUSY
Papierende
PE
<c
Empfänger angewählt
SLCT
<c
Fehlermeldung
FAULT
RESET
IFR5T
Betriebserde
0
Blld 5. 30 Signale der Centronlcs-Schnlttstel le
36
DATA 1-8
1 1
L
1/1S (MINH
— 1/JS (MIN)
Bild 5 . 31 Slgnalsplel einer Minimal -Centronics -Schnitt stel le
stelle. Es sind dies die Leitun¬
gen STROBE und BUSY. Mit aktivem
STROBE-Signal teilt der Rechner
dem Drucker mit, daß ein
gültiges Byte auf den Datenlei¬
tungen ansteht, mit der BUSY-
Leitung zeigt der Drucker dem
Rechner an, oh er zum Datenemp¬
fang bereit oder nicht bereit
ist. Das Signal spiel einer sol¬
chen abgerüsteten Centronics-
Schnittstel le ist dem Bild 5.31
zu entnehmen.
Die Erzeugung des Drucker-
STROBE- Signals wird von der PIO
übernommen. Nachdem nämlich das
Einschreiben eines Bytes in. die
PIO beendet ist (Ende des WR-
Impulses), wird nach der näch¬
sten fallenden Flanke des Sy¬
stemtaktes das READY-Signal der
PIO in den aktiven Zustand
(High-Pegel) gebracht. Da das
Drucker -STROBE in der überwie¬
genden Zahl der Fälle low- aktiv
ist, wird das' READY-Signal der
PIO über ein Gatter von IS3
invertiert. Dazu ist auf der
Platine die Brücke Xl(-), bei
nichtinvertiertem READY sinnge¬
mäß XI (+) zu schließen, Diese
Möglichkeit ist auf der Platine
nur für den PlO-Port A vorgese¬
hen, der in der vorgeschlagenen
Variante als Datenport der Cen -
tronl cs-Schnitt stel le arbeitet.
Bei Verwendung der angegebenen
Treiber Software ist die BUSY-
Leitung des Druckers mit dem
Bit2 des PlO-Ports B zu verbin¬
den. Nachteilig an der beschrie¬
benen Erzeugung des Drucker -
STROBE ist zunächst die Tatsa¬
che, daß das Signal ARDY der PIO
auch dann noch aktiv ist, wenn
der Drucker die Daten längst
übernommen hat. Um dies zu umge¬
hen, gibt es verschiedene Mög¬
lichkeiten:
1. Verbindung des Drucker-Si¬
gnals ACK mit ASTB der PIO.
Dieses Drucker -Signal wird
immer am Ende des BUSY-Si-
gnals aktiviert. Es meldet
das Ende der Datenübernahme.
Bei der PIO löst die positive
Flanke des Impulses die Deak¬
tivierung des READY-Signal s
nach der nächsten fallenden
Flanke des Systemtakts aus.
37
Bei dieser Möglichkeit ist
die erforderliche weitere
S teuer 1 ei tung nachteilig, da¬
für bleibt die PIO aber un¬
eingeschränkt interruptfähig.
Für verschiedene Drucker
(u. a. Robotron-K-63xx-Se rie)
kann es hei Verwendung dieser
Variante nötig werden, das
Signal ARDY der PIO zusätz¬
lich zu differenzieren. Eine
Möglichkeit dazu ist im
Bild 5. 32 angegeben.
4,7n
PIO-ARDYo - Ihr — - ° STROBE
1.2 k U ÄSAY17
Bild 5, 32 Differenzierglied für
das Drucker- Strobe -Signal
2. Verbindung von ASTB der PIO
mit +5 V. In dieser Betriebs¬
art erzeugt die PIO nach Ein¬
schreiben der Daten einen
ARDY- Impul s der Länge einer
Systemtaktperiode, der inver¬
tiert als Drucker-Strobe ver¬
wendet werden kann. Dabei
kann der PIO-Kanal A keinen
Interrupt anmelden, eine in¬
terruptgesteuerte Drucker aus -
gäbe ist somit nicht möglich.
3. Verbindung der PIO-Leitungen
ASTB und ARDY. Auch bei die¬
ser Schaltungsvariante wird
ein Drucker-Strobe von Sy¬
stemtakt breite erzeugt. Die
Breite dieses Impulses liegt
beim ZX Spectrum mit 3, 5 MHz
Taktfrequenz bei 266 ns. Die¬
ser Wert liegt weit unter der
von den meisten Drucker-Her-'
Stellern geforderten STROBE-
Impulsbreite von 1 \is. Versu¬
che mit unterschiedlichen
Druckern haben aber gezeigt,
daß es hierbei keine Probleme
mit der Datenübernahme gibt.
Interrupts können auch hier
nicht ausgelöst werden, da
aufgrund der internen Schal¬
tung der PIO sowohl der Zu¬
stand Ml = 0 als auch STROBE
= 0 eine Übernahme der Inter¬
ruptanforderung in den inter¬
nen Interrupt spei eher verhin¬
dert.
Tabelle 5.6 Centronics -Tr eiberprogramm
2
4
6
.************************
j*** GP 550 - TREIBER ***
.************************
»
F230
8
10
5
0RG
62000
5C10
20
STRMS
EQU
I5C10
4000
30
VIM
EQU
#4000 ;ANFANG DISPLAYDATEI
5800
40
ATTR
EQU
#5800
5C4F
50
CHANS
EQU
#5C4F
0C10
60
T0K
EQU
#0C10
F230
C350F2
70
JPT
JP
INIT ;EINSPRUNGTABELLE
F233
C36CF2
80
JP
LST
F236
C39CF2
90
JP
SCPY
F239
1B543136
100
ING
0EFB
2 ~J H J II H ^ II »• £ *»
’ ’ * {GRÖSSE ZEILENVORSCHUB
F23D
Q00A1B47
3132
110
VTB '
DEFB
13, 10, 27, "G", "5", "1", "2"
;512 GRAFIKDATEN
F244
38
1836
120
INST
DEFB
27, "6"
F246
7E
130 MOV
LD
A, (HL)
STEUER¬
F247
C5
140
PUSH
BC
ZEICHEN
F248
CD81F2
150
CALL
AGR
; AUSGEBEN
F240
CI
160
POP
BC
; ANZAHL
F24C
23
170
INC
HL
; STEHT
F240
10F7
180
0 JNZ
MOV
; IM B-REGISTER
F24F
C9
190
RET
F250
F3
200 INIT
DI
; INITIALISIERUNG
F251
3E0F
210
LD
A , #0F
F253
D3AF
220
OUT
(#AF),A
; PIO PORT A MODE 0
F255
3ECF
230
LD
A , #CF
F257
D3BF
240
OUT
(#BF),A
; PIO PORT B MODE 3
F259
3E0F
250
LD
A,#OF
F25B
D3BF
260
OUT
(#BF),A
; UNTERE 4 BIT EINGANG
F23D
2A4F5C
270
LD
HL, (CHANS)
SYSTEMVARIABLE
F260
010F00
280
LD
BC , IOOOF
;CHANS
F263
09
290
ADO
HL , BC
;+ 15
F264
016CF2
300
LD
BC , LST
;ZEIGT AUF
F267
71
310
LD
(HL) ,C
; ANFANG
F268
23
320
INC
HL
SER
F269
70
330
LO
(HL) ,B
; PRINTROUTINE
F26A
FB
340
EI
F26B
C9
350
RET
F26C
F3
360 LST
DI
Z NT ERRUPT SPERRE
F26D
FE80
370
CP
#80
ZEICHEN DRUCKBAR ?
F26F
3805
380
JR
C , GRP
SA: AUSGEBEN
F271
D6A5
390
SUB
#A5
; NEIN :
F273
C3100C
400
DP
TOK
; TOKE NBE HANDLUNG
F276
F3
410 GRP
01
F277
FEOD
415
CP
13
ZEICHEN ENTER ?
F279
CGEEF2
420
CALL
Z, ENTER
SA: ZEILENVORSCHUB
F27C
CD81F2
425
CALL
AGR
; MIT AUSGEBEN
F27F
FB
430
EI
F280
C9
440
RET
F281
CD89F2
450 AGR
CALL
BUSY
; DRUCKER BEREIT ?
F284
38FB
460
JR
C , AGR
; NEIN : WARTEN
F206
038F
470
OUT
( #8F ) , A
SA: ZEICHEN AUSGEBEN
F288
C9
480
RET
F289
47
490 BUSY
LD
B,A
; REGISTER RETTEN
F28A
3E7F
500
LD
A , #7F
F28C
DBFE
510
IN
A,(#FE)
F28E
1F
520
RRA
F28F
3803
530
JR
C , BMI
F 291
FB
540
EI
j
F292
CF
550
RST
#08
F293
OC
560
DEFB
#0C
F294
AF
570 BMI
XOR
A
F295
0B9F
580
IN
A , ( #9F )
SRUCKERSTATUS lesen
F297
1F
590
RRA
; PIO-BIT B2
F298
1F
600
RRA
; INS CARRY-FLAG
F299
1F
610
RRA
; ROTIEREN
F29A
78
620
LD
A,B
; REGISTER ZURÜCK
F29B
C9
630
RET
39
F29C
F3
640 5CPY
01 '
BILDSCHIRM-KOPIE
F290
2139F2
650
LD
HL, ING
STEUERWORTTABELLE
F2A0
060B
660
L0
B , 1 1
11 STEUERWORTE
F2A2
CD46F2
670
CALL
MOV
AUSGEBEN
F2A5
210040
680
LD
HL , VIM
F2A8
1E03
690
LD
E» 3
3 BILDSCHIRMDRITTEL
F2AA
1621
700
LD
D , 33
32 ZEICHEN JE ZEILE
F2AC
15
710 GM1
DEC
D
ZEILE FERTIG ?
F2A0
CCE1F2
720
CALL
Z , VOR
JA: NÄCHSTE ZEILE
F2B0
CDC9F2
730
CALL
GR88
F2B3
2C
740
INC
L
F2B4
20F 6
750
JR
NZ.GMl
F2B6
3E08
760
LD
A , 8
F2B8
84
770
ADD
A , H
F2B9
67
780
LD
H , A
F2BA
ID
790
DEC
E
3 DRITTEL FERTIG ?
F2BB
20EF
800
JRNZ
GM1
NEIN: WEITER
F2BD
0602
810
LD
B , 2
HARDCOPY FERTIG
F2BF
2144F2
820
LD
HL, INST
EINEN ZEILENVORSCHUB
F2C2
CD46F2
830
CALL
MOV
IM GRAFIKMOOUS
F2C5
3E0A
835
LD
A , 10
AUSGEBEN
F2C7
18AD
840
JR
GRP
F2C9
0E08
850 GR88
LD
C , 8 i
;8 X 8 PIXEL
F2CB
E5
860 R0L1
PUSH
HL
F2CC
0608
870
LD
B , 8 ;
:PR0 ZEICHENPOSITION
F2CE
CB06
880 R0L2
RLC
(HL)
F2D0
1F
890
RRA
\
F2D1
24
900
INC
H |
F2D2
10FA
910
DJNZ
R0L2
F2D4
C5
920
PUSH
BC
F205
CD81F2
930
CALL
AGR ;
[ZWEIMAL AUSGEBEN VER-
F2D8
CD81F2
935
CALL
AGR j
l GRÖSSERT DAS BILD
F2DB
CI
940
POP
BC
F2DC
El
950
POP
HL
F2DD
00
960
DEC
C
F2DE
20EB
970
JR
NZ.R0L1
F2E0
C9
980
RET
F2E1
E5
990 VOR
PUSH
HL
STEUERWORTTABELLE
F2E2
2130F2
1000
LD
HL , VTB
GRAFIKMODUS
F2E5
0607
1010
LD
B , 7
7 STEUERWORTE
F2E7
C046F2
1020
CALL
MOV
AUSGEBEN
F2EA
1620
1030
LD
D , 32
NÄCHSTE 32 POSITIONEN
F2EC
El
1040
POP
HL
F2ED
C9
1050
RET
F2EE
3E0A
1060 ENTER
LD
A , 10
ZEILENVORSCHUB
F2F0
CD81F2
1070
CALL
AGR
AUSGEBEN
F2F3
3E0D
1080
LD
A, 13
ENTER-COOE LADEN
F2F5
C9
1090
RET
F2F6
1101 ,
END
Die vorgestellte Centronics- fähig. Sie akzeptiert die Funk-
Treiber Software (Tabelle 5.6) tionen LPRINT und LLIST direkt,
ist auf dem ZX. Spectrum lauf- die Funktion COPY muß Uber
40
RANDOMI ZE USR Startadresse + 6
aufgerufen werden. DartLber hin¬
aus sind mit diesem Treiber auch
Drucker aus gaben aus anderen Pro¬
grammen heraus möglich. Bedin¬
gung dafür ist, daß die Drucker-
ausgaberoutine dieser Programme
das Zeichen im A-Register des
Prozessors über den aktuell
geöffneten Kanal ausgibt. Nach
dem Laden des Programms wird mit
dem Befehl
RANDOMI ZE USR Startadresse
die PIO initialisiert und dem
Rechner mitgeteilt, wohin er die
zu druckenden Daten schicken
soll.
Für die schon erwähnte inter¬
ruptgesteuerte Drucker aus gäbe
wäre neben einem anderen Trei-
berprogramm die Verbindung des
PIO-Anschlusses IEI mit +5 V
oder dem Anschluß IEO des höher
priori sierten Interface-Schalt¬
kreises erforderlich. Natürlich
können einfache Drucker treiber
unter Nutzung der guten String-
ver arbe i t ung smö g 1 i chke i t en des
Spectrum auch in Basic geschrie¬
ben werden. Dazu sei noch ange¬
merkt, daß es viel Programmier-
aufwand und Speicherplatz spart,
wenn häufig gebrauchte St euer Se¬
quenzen (Escape-Folgen) wie im
folgenden Beispiel in eine
Stringvariable übernommen wer¬
den:
Bild 5. 35 Behelfslösung für Amphenol -St ecKverhlnder (Einzel -
platine)
0
GNO
Bild 5. 33 Genormte Belegung
eines Centronlcs-StecKverhlnders
(Amphenol )
41
+CHR$ ( 100) +CHR$ (0)
20 LPRINT G$
Die Bilder 5. 33 und 5. 34 zeigen
die Anschlußbelegungen der ver¬
wendeten Drucker. Während der
Steckverbinder für den K 63xx
sicher leicht zu beschaffen ist,
gibt es bei den Amphenol -Steck¬
verbindern manchmal Schwierig¬
keiten. Im Bild 5. 35 ist dafür
eine Behelf slösung angegeben.
Diese Leiterplatte wird zweimal
angefertigt; die Rückseiten sind
mit einer 0, 5 mm dicken Blech-
zwischenlage nach Bild 5. 36 zu¬
sammenzukleben. Dazu kann z. B.
Helapox schnei 1 härtend verwendet
werden. Es empfiehlt sich sehr,
diesen Ersatzstecker zu verzin¬
nen, ,da es anderenfalls oft zu
Kontaktschwierigkeiten kommt.
üeiterseite
Leiterseite
Platine 1
Blechzwischenlage
0.5 mm
Platine 2 '
Bild 5. 36 Auf hau der Amphenol -
Behelfslösung
5. 6. 4. Prograranlerung der PIO
U 655 lm Interruptbe¬
trieb
Die Programmierung von Inter¬
ruptanforderungen wird beim ZX
Spectrum durch das ULA sehr er¬
schwert. Dieses löst hardware¬
mäßig alle 20 ms einen Interrupt
aus, ln dem u. a. die Tastatur
abgefragt wird. Der Prozessor
läuft dazu im Interruptmodus 1
(IMi). In diesem Modus führt der
Prozessor bei Jeder Interruptan¬
forderung einen Unterprogramm¬
aufruf auf Adresse 36H aus. Erst
der viel leistungsfähigere IM2
erlaubt es aber, das Programm ih
Abhängigkeit von der peripheren
Interruptquelle zu verzweigen.
Leider ist dafür das ULA nicht
ausgelegt. Es ist daher - pro¬
grammtechnisch einfacher, auf
den ULA- Interrupts aufzubauen
und mit der Tastaturabfrage
z. B. auch einen PlO-Port ein¬
zulesen. Da das dann ebenfalls
alle 20 ms abläuft, sind auch
relativ zeitkritische Aufgaben
lösbar.
5. 6. 5. Parallel Schnittstelle
mit der PIO 6255
Der Schaltkreis 6255 entstammt
dem Prozessorsystem 6060 , ist
aber auch im System U 660 eln-
setzbar. Gegenüber der PIO U 655
weist er 24 Ein-/Ausgänge auf
und ist einfacher, aber nicht so.
universell programmierbar. Die
24 Ein-/Ausgänge sind in 3 Ports
zu Je 6 bi t unterteilt. Der Port
C kann in 2 Gruppen zu Je 4 bit
dem Port B (CO bis C3) und dem
Port A (C4 bis C7) zugeordnet
werden, womit die PIO 6255 eine
2 -Port -Struktur zu Je 12 bit
aufweist. Die PIO 6255 läßt sich
in 3 Betriebsarten (Moden) be¬
treiben:
Mode 0 - Standard-Ein-/Ausgabe
ohne Quittungssignale,
Mode 1 - getaktete Ein-/Ausgabe
mit Quittungssignalen,
Mode 2 - bidirektionaler Be¬
trieb mit Quittungs¬
signalen.
Zur Definition der Betriebsart
wird der PIO 6255 ein Steuerwort
mitgeteilt, das das in Tabelle
5. 7 abgegebene Format hat.
In} Bild 5.37 ist eine Möglich¬
keit des Anschlusses der PIO
6255 an den ZX Spectrum gezeigt.
Diese Schaltung benutzt die
gleichen Adressen wie die Schal -
42
Tabelle 5.7 Steuerwort-Aufbau des PIO-
Schaltkrelses 6255
Bit
0/1
Bedeutung
Gruppe
B
DO
0
Port C untere 4 Bit Ausgang
1
Port C untere 4 Bit Eingang
Dl
0
Port B Ausgang
1
Port B Eingang
D2
0
Betriebsart 0
1
Betriebsart 1
Gruppe
A
D3
j
0
Port C obere 4 Bit Ausgang
1
Port C obere 4 Bit Eingang
D5/D6
0
0
Betriebsart 0
0
1
Betriebsart 1
1
X
Betriebsart 2
D7
0
- Betriebsart definieren
1
Einzelbit setzen/ löschen
tung mit der PIO U 655 , da in
Kleincomputersystemen vermutlich
eine PIO ausreicht. Die PIO 6255
hat einen H-aktiven Reset-An¬
schluß, so daß die Reset-Leitung
des Rechners invertiert werden
muß, falls nicht nur vom Power-
on-Reset Gebrauch gemacht wird.
Nach einem Reset sind alle in¬
ternen Register zurtlcKgesetzt,
die Ports A, B und C sind als
Eingänge definiert. Die An¬
schlußbelegung der PIO 6255 ist
dem Bild 5. 36 zu entnehmen.
5.7. Serielle Schnittstellen
Im Gegensatz zu einer Parallel-
Schnittstel le, bei der ganze
Bytes übergeben werden, erfolgt
bei der seriellen Schnittstelle
der Datentransport Bit für Bit
als Folge von Spannung s impu 1 sen
einer bestimmten Dauer. Ein sehr
weit verbreiteter Standard für
serielle Schnittstellen ist die
Norm V. 24 bzw. RS 232 C. Hierbei
werden Pakete von 5 bis 6 Daten-
Blld 5. 37 Anschluß der PIO 6255
an den ZX Spectrum
43
PA 3
PA2
PA1
PA0
55
CS
0 V
AI
A0
PC7
PC6
PC5
PC4
PC0
PCI
PC 2
PC3
PBO
PB1
PB2
Bild 5. 36 Anschlußbelegung der
PIO 6255
bits übertragen, die von einem
Startbit und ein bis zwei Stop-
bits eingerahmt sind. Zusätzlich
Kann vor dem Stopbit ein Pari¬
tätsbit vereinbart werden, das
die Anzahl der High-Bits im
Datenwort auf einen geraden oder
ungeraden Wert ergänzt. Das
Prinzip einer V. 24-Datentlbertra-
gung ist im Bild 5. 39 darge¬
stellt. Daraus geht hervor, daß
das Startbit grundsätzlich High-
und das Stopbit grundsätzlich
Low-Pegel hat.
Zur Erhöhung der Störungsfestig-
Keit wird logisch Eins (gesetz¬
tes Bit) nicht durch +5 V, son¬
dern durch eine Spannung von -3
bis -12 V realisiert, logisch
Null dementsprechend mit +3 bis
+ 12 V. Für eine solche Schnitt¬
stelle sind also neben der Si-
gnalaufbereitung auch Pegel Wand¬
ler erforderlich, die als inte¬
grierte Schaltkreise zur Verfü¬
gung stehen oder entsprechend
Bild 5.40 diskret auf gebaut
werden können. Die V. 24-Schnitt-
stelle arbeitet mit verschiede¬
nen, genormten Datenübertra¬
gungsraten, die in Baud (bit pro
Sekunde) angegeben werden. Die
am häufigsten verwendeten über¬
tragungsraten sind 75, 110, 135,
150, 300, 600, 1200, 2400, 4600,
9600 und 19200 Baud. über eine
V. 24-Schnittstel le ist Duplexbe¬
trieb möglich, d. h. , der Compu¬
ter kann gleichzeitig Daten sen¬
den und empfangen. Dabei können
Sender und Empfänger mit unter-
s chi e d 1 i chen Da t enüber tr agung s -
raten betrieben werden.
Für die Realisierung einer se¬
riellen Schnittstelle im allge¬
meinen steht im Prozessorsystem
U 660 der Schaltkreis U 656
(SIO) zur Verfügung. Dieser wird
meist noch durch einen CTC-
Schaltkreis U 657 zur Einstel¬
lung der Datenübertragungsraten
ergänzt. Mit diesen beiden Bau¬
steinen ist eine V. 24-Schnitt¬
stel le für nahezu beliebige Da¬
tenraten im Duplexbetrieb rea¬
lisierbar. Dabei überninmt die
SIO die Paral lel-Serien-Wand-
lung, die Erzeugung von Start-,
Stop- und Paritätsbits sowie die
Verarbeitung entsprechender
High H-
Kein
Low
Zeichen
= Stop (high)
Start-
Bit r-
,, (Parity) Stop (Stop) Kfei'n
r «T ! o I. i. I 0:1. 0 I _ '<
0 I 1
6 i P
. _ • . : 2 I 3 ! 4 ! L w . . ,
1 1 1 1 1 1 1 I
JL - L - j - J - ± - JL - J - - J
! Bit 1 I Bit- 2 I Zeichen
Bild 5. 39 Prinzip der V, 24- Übertragung
44
4.7k
Bild 5.40 Pegel wandler für
V. 24-Schnlttstellen
Steuersignale. Schal tungsbei-
spiele für solche Schnittstellen
sind in der Literatur bereits
mehrfach veröffentlicht worden
[2], [8], [9].
Beide Schaltkreise 'belegen al¬
lerdings Jeweils 4 E/A-Adressen.
Das läßt einen solchen Aufbau
für den ZX Spectrum mit seinem
ohnehin stark eingeschränkten
Adreßraum ungeeignet erscheinen,
zumal der vermutliche Haupt an¬
wendungsfall, der Betrieb eines
Druckers mit V. 24-Schnittstel 1 e,
einen solchen Aufwand nicht
rechtfertigt, über eine PIO oder
einen anderen E/A-Baustein ist
es Jedoch möglich, mit geeigne¬
ter Software eine V. 24-Schnitt¬
stel le zu simulieren. Das soll
am Beispiel des Anschlusses ^der
e 1 ektroni sehen Schreibmaschine
Erika S 3004 an den ZX Spectrum
näher erläutert werden.
5. 7. 1. Anschluß der Erika S 3004
Die Typenrad-Schreibmaschine
S 3004 enthält einen eigenen Mi¬
krorechner, der sämtliche inter¬
nen Abläufe steuert. Es wird der
Einchiprechner UB 6840 angewen¬
det, dessen Programm auf einem
externen EPROM U 2732 (4k x 8
bit) abgelegt ist. über Aufbau,
Funktion, Befehlssatz und Pro¬
grammierung dieses Einchiprech¬
ners kann u. a. in [10] nachgele¬
sen werden.
Zur S 3004 werden als Option
verschiedene Interface-Kassetten
angeboten, die aber zum Zeit¬
punkt der Manuskripterarbeitung
noch nicht zur Verfügung stan¬
den. Geplant sind V. 24-, Centro¬
nics- und Commodore-Schnittstel-
len. Für den Anschluß dieser In¬
terface-Kassetten dient ein an
der rechten Seite der Maschine
befindlicher 2 x 13po'liger EGS-
Steckverbinder (Bild 5.41). Von
den 26 Leitungen sind allerdings
nur ganze 6 wirklich beschältet,
und positive Betriebsspannung
(+5 V) sind auf diesen Steckver¬
binder die Porti ei tungen P30,
P31 , P36 und P37 des UB 8840
geführt. Die Leitungen P30 und
P31 sind serielle Eingänge, die
Leitungen P36 und P37 serielle
Ausgänge des Einchiprechners.
Von Bedeutung für die Anwendung
der S 3004 als Drucker sind die
Leitungen P30 (Datenleitung) und
P36 (BUSY-Signal ) . Die Schnitt¬
stelle arbeitet mit einer Daten¬
übertragungsrate von 1200 Baud,
einem Startbit, 8 Datenbits und
zwei Stopbits ohne Parität.
Leider ist die direkte Ansteue¬
rung der Schreibmaschine mit
ASCII -codierten Zeichen nicht
möglich, da intern ein Code ver¬
wendet wird, der der Position
des Zeichens auf dem Typenrad
entspricht. Die Umcodierung
könnte hardwaremäßig, etwa über
einen EPROM, vor genommen werden,
was aber den Aufwand wieder er¬
höht. Deshalb wird vom Treiber¬
programm eine Umcodierung über
eine Zuordnungstabei le durchge-
45
O O I
rn m a
nicht- belegt *-
i — i — i — i — i — I — i — i — i — i I I I
ooooooooooooo
1 2 3 U 5 6 7 8 9 10 11 12 13
i — i — i — i — i — | — i — i — i — ■ | | j
nicht belegt
r- > r—
m in m
CL + Ql
Bild 5. 41 Anschlußbelegung des
Int er face -Steckverbinders der
Erika S 3004
führt. Die Zuordnung des inter¬
nen Codes der Schreibmaschine
zum ASCII -Code ist Tabelle 5. 8
zu entnehmen.
Nicht benötigte bzw. auf dem
Typenrad nicht vorhandene Zei¬
chen wurden Null gesetzt. Hier
Kann bei Bedarf ein anderer Code
eingetragen werden. über die
ASCII -Zeichen hinaus existiert
Tabelle 5. 8 Interne Codes der Schreib¬
maschine Erika S 3004
ASCII
dez.
hex.
Zeichen
S 3004
dez.
hex.
0
00
0
00
1
01
0
00
2
02
0
00
3
03
0
00
4
04
0
00
5
05
0.
00
6
06
0
00
7
07
0
00
8
08
0
00
9
09
0
00
10
OA
0
00
11
OB
0
00
12
' OC
0
00
13
OD
ENTER
11
77
14
OE
0
00
15
OF
0
00
16
10
0
00
17
11
0
00
18
12
0
00
19
13
0
00
20
’ 14
0
00
21
15
0
00
22
16
0
00
23
17
0
00
24
18
0
00
25
19
0
00
26
1A
0
00
27
1B
0
00
28
IC
0
00
29
ID
0
00
30
IE
0
00
31
46
1F
0
00
/
32
33
34
35
36
37
36
39
40
41
42
43
44
45
46
47
46
49
50
51
52
53
54
55
56
57
56
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
hex.
hex.
Zeichen S 3004
dez.
20
SPACE
113
71
21
»
66
42
22
t»
67
43
23
#
65
41
24
$
72
48
25
z /
4
04
26
&
2
02
27
*
23
17
28
(
30
IE
29
)
31
1F
2A
K
27
1B
2B
+
37
25
2C
1
100
64
2D
-
98
62
2E
,
99
63
2F
/
64
40
30
0
0
0D
31
1
17
11
32
2
16
10
33
3
15
OF
34
4
14
OE
35
5
12
OC
36
6
11
OB
37
7
10
OA
38
8
9
09
39
9
8
08
3A
l
19
13
3B
i
59
3B
3C
<
0
00
3D
=
46
2E
3E
>
0
00
3F
?
53
35
40
§
0
00
41
A
48
30
42
B
24
16
43
C
32
20
44
D
20
14
45
E
52
34
46
F
62
3E
47
G
28
IC
48
H
16
12
49
I
33
21
4A
J
50
32
4B
K
36
24
4C
L
'44
2C
4D
M
22
16
47
ASCII
dez.
hex.
Zeichen
S 3004
dez. hex.
78
4E
N
42
2A
79
4F
0
30
IE
80
50
P
47
2F
81
51
Q
26
1A
82
52
R
54
36
83
53
S
-
51
33
84
54
T
55
37
85
55
U
40
28
86
56
V
34
22
87
57
W
45
2 Ds
88
58
X.
38
26
89
59
Y
49
31
90
5A
Z
56
38
91
5B
Ä
63
3F
92
5C
ü
60
3C
93
5D
U
58
3A
94
5E
A
0
, 00
95
5F
1
01
96
60
*
6
06
97
61
a
97
61
98
62
b
78
4E
99
63
c
87
57
100
64
d
83
53
101
65
e
90
5A
102
66
f
73
49
103
67
g
96
60
104
68
h
85
55
105
. 69
i
5
05
106
6A
J
75
4B
107
6B
k
80
50
108
6C
l
77
4D
109
6D
m
74
4A
110
6E
n
92
5C
111
6F
0
94
5E
112
70
P
91
5B
113
71
q
82
52
114
72
r
89
59
115
73
s
88
58
116
74
t
86
56
117
75
u
93
5D
118
76
V
79
4F
119
77
w
76
4C
120
78
X
95
5F
*121
79
Y
81
51
122
7A
z
84
54
123
7B
ä
101
65
48
ASCII
dez.
hex.
Zeichen
S 5004
dez. hex.
124
7C
ö
102
66
125
7D
ü
103
67
126
7E
ß
71
47
127
7F
0
00
eine Anzahl Steuerwörter (Esca-
pe-Folgen), deren Bedeutung aus
der Tabelle 5.9 ersichtlich ist.
Beim Senden der als nicht belegt
gekennzeichneten Codes reagiert
die Schreibmaschine zwar auch,
allerdings Konnten dabei Keine
sinnvollen Funktionen nachgewie¬
sen werden. Wahrscheinlich ist,
daß diese Codes TestzwecKen beim
Hersteller Vorbehalten sind. Für
den Betrieb der S 5004 an der
beschriebenen V. 24-Schnittstel le
sind Keine Pegelwandler erfor¬
derlich, da sowohl die PIO als
auch der Einchiprechner ledig¬
lich TTL-Pegel verarbeiten.
Somit beschränkt sich das Inter¬
face neben der PIO-Karte aus
Abschnitt 5. 6. 2. auf ein drei¬
adriges Kabel, das Computer und
Schreibmaschine gemäß Tabelle
5. 10 verbindet.
An dieser Stelle sei noch ange¬
merkt, daß die Porti ei tungen des
Einchiprechners der Schreibma¬
schine ungepuffert auf den In¬
terface-Steckverbinder geführt
sind. Unachtsamkeiten (falsche
Pegel, vertauschte Leitungeri,
Verbindung einer Porti eitung mit
Masse oder +5 V usw. ) können
hier relativ große (und teure)
Schäden verursachen. Es wird
deshalb empfohlen, trotz des
etwas größeren Aufwands nicht
Tabelle 5.9 Steuercodes des Erika S 5004
Code
dez.
S 5004
hex.
Funktion
113
71
Leerzeichen (Space)
114
72
RUcks ehr i 1 1 ( Backspac e )
115
73
Halbschritt rechts
116
74
Halbschritt links
117
75
Halbschritt hoch
118
76
Halbschritt runter
119
77
Wagenrückl auf /Zei 1 enschal tung (CR/LF)
120
76
Wagenrücklauf (CR)
121
79
Tabulator
122
7A
Tabulator auf aktuel le Position setzen
123
7B
Tabulator auf aktueller Position löschen
124
7C
Alle Tabulatoren löschen
125
7D
Tabulator-Raster setzen (auf 15, 25, 35, 45, 55, 65)
126
7E
linken Rand auf aktuelle Position setzen
127
7F
rechten Rand auf aktuelle Position setzen
126
60
Rand lösen
49
Code
dez.
S 3004
hex.
Funkt ion
129
81
Mikrostep hoch
130
82
Mikro Step runter
131
83
Papiereinzug
132
84
Schreiben .. 1 zei 1 lg
133
85
Schreiben l,5zeillg
134
86
Schreiben 2zeilig
135
87
10 Zeichen pro Zoll
136
88
12 Zeichen pro Zoll
137
89
15 Zeichen pro Zoll
1 38
SA
nicht belegt
139
8B
Druckstatus - Druck aller folgenden Zeichen
140
8C
Korrekturstatus - Korrektur aller folgenden Zeichen
141
8D
Vorwär t s druck
142
8E
RUckwärt s druck
143
8F
Ränder ignorieren
144
90
Ränder berücksichtigen
145
91
Druckwerk aus, Zeichenausgabe an Schnittstelle
146
92
Druckwerk ein
147
93
nicht belegt .
148
94
nicht belegt
149
95
Schreibmaschine in Grundstellung
150
96
nicht belegt
151
97
nicht belegt
152
98
nicht belegt
153
99
nicht belegt
154
9A
nicht belegt
155
9B
Freigabe Dauerfunktion
156
9C
Sperre Dauer funkt ion
157
9D
nicht belegt
158
9E
nicht belegt
159
9F
nicht belegt
160
AO
ständig Dauer funkt ion
161
Al
Laden der übertragungsrate der Interfacebox
162
A2
nicht belegt
169
A9
• »
nicht belegt
170
AA
Hupe (Folgebyte bestimmt Dauer)
171
AB
nicht belegt
175
AF
nicht belegt
176
BO
frei
255
FF
frei
50
Tabelle 5. 10 Beschaltung des Interface-
Kabels
PlO-Port-
leitung
Steck¬
verbinder
Signal
S 3004
Steck¬
verbinder
A6
A10
RXD
All
A7
All
RTS
A12
Masse
A12/13
GND
Al 3
3,3 k
Bild 5.42 S 3004-Pufferstufe
mit DL 008
V 4050
P36 <*-
P30 o-
P37 o-
8 P31 -
CO
co + 5V o-
GND o - - - - - o 2
Bild 5. 43 S 3004-Pufferstufe mit
V 4050
-o 1
-o 4
Tabelle 5. 11 S 3004-Trelberprogranm
1Q ************************
20 ;*** S
3004
- TREIBER
***
30 .************************
40 ;
F230
50
0RG
62000
; ANFANGSADRESSE
008F
60 PAD
EQU
#8F
; PIO PORT A DATEN
OOAF
70 PAC
EQU
#AF
; PIO PORT A STEUERUNG
3C4F
80 CHANS
EQU
#5C4F
; ZEIGER DRUCKROUTINE
0C10
90 TOKEN
EQU
#0C10
; TOKENBEHANDLUNG
F230
F3
100 INIT
DI
F231
F5
110
PUSH
AF
F232
C5
120
PUSH
BC
F233
E5
130
PUSH
HL
F234
3ECF
140
LD
A , #CF
F236
D3AF
150
OUT
(PAC) , A
; PORT A MODE 3
F238
3E80
160
LD
A , #80
F23A
D3AF
170
OUT
(PAC) , A
; BIT 7 EINGANG
F23C
3E03
180
LD
A , 3
F23E
D3AF
190
OUT
(PAC) , A
;INTERRUPT AUS
F240
3E40
200
LD
A , #40
F242
D38F
210
OUT
(PAD) , A
; DATENAUSGANG HIGH
F244
2A4F5C
220
L0
HL, (CHANS)
F247
010F00
230
LD
BC , #000F
; IN SY'STEMVARIABLE
F24A
09
240
ADD
HL , BC
; CHANS + 15
F24B
0156F2
250
LD
BC, PRINT
; ANFANGS ADR ESSE
51
z B. Diodenbüchse
F24E
71
260
LO
(HL ) , C
; DER PRINT-
F24F
23
270
INC
HL
; ROUTINE
F250
70
280
LO
(HL) , B
;LADEN
F251
El
290
POP
HL
F252
CI
300
POP
BC
F253
Fl
310
POP
AF
F254
FB
320
EI
F255
C9
330
RET
F256
F3
340 PRINT
DI
F257
FE80
350
CP
#80
; ZEICHEN GRÖSSER 128 ?
F259
3805
360
JR
C , PRI
; NEIN : DRUCKEN
F25B
D6A5
370
SUB
#A5
F25D
C3100C
380
OP
TOKEN
; JA : TOKENBEHANDLUNG
F260
F5
390 PRI
PUSH
AF
F261
0B8F
400 BUSY
IN
A, (PAD)
;S 3004 BEREIT ?
F263
E680
410
AND
#80
F265
20FA
420
OR
NZ , BUSY
; NEIN : WARTEN
F267
Fl
430
POP
AF
; ZEICHEN HOLEN
F268
C068F2
440
CALL
UMCOD
; UND UMCOOIEREN
F26B
E6FF
450
AND
#FF
; CARRY-FLAG LÖSCHEN
F26D
1F
460
RRA
F26E
1F
470
RRA
F26F
F3
480
DI
F 2 7 Q
0609
490
LD
B , 9
;START- UND 8 DATENBIT
F272
D38F
500 AUSG
OUT
(PAO) , A
; AUSGEBEN
F274
1F
510
RRA
F275
C075F2
520
CALL
ZEIT
; MIT 1200 BAUD
F278
10F8
530
OONZ
AUSG
; BIS B = 0
F27A
3E40
540
LD
A , #40
; DATENAUSGANG = 0
F27C
038F
550
OUT
(PAO) , A
; SETZEN
F27E
C086F2
560
CALL
ZEIT
; STOPBITS
F281
CD86F2
570
CALL
ZEIT
;AUSGEBEN
F284
FB
580
EI
•• ■
F283
C9
590
RET
F286
C5
600 ZEIT
PUSH
BC
F287
06D9
610
LO
B , 217
; ZEITSCHLEIFE
F289
10FE
620 ZEIT1
DJNZ
ZEIT1
; FÜR
F28B
CI
630
POP
BC
; 1200 8AU0
F28C
C9
640
RET
F28D
C5
650 UMCOD
PUSH
BC
F28E
E5
660
PUSH
HL
F28F
219AF2
670
LD
HL, COTAB
; T ABELLENANFANG
F292
4F
680
LDP
C,A
;ALTER CODE IN C
F293
0600
690
LO
B , 0
/
F295
09
700
ADO
HL ,BC
F296
7E
710
LD
A , (HL )
;NEUER CODE NACH A
F297
Fl
720
POP
HL
F298
CI
730
POP
BC
F 299
C9
740
RET
F29A
000000
750 COTAB
OEFB
#00, #00,
#00
; COOETABELLE
F290
000000
760
OEFB
#00, #00,
#00
F2A0
790072
770
DEFB
#79, #00,
#72
F2A3
000000
780
DEFB
#00, #00,
#00
52
F2A6
007700
790
DEFB
F2A9
000000
800
DEFB
F2AC
000000
810
DEFB
F2AF
000000
820
DEFB
F2B2
000000
830
DEFB
F2B5
000000
840
DEFB
F2B8
000071
850
DEFB
F2B8
424341
860
DEFB
F2BE
480402
870
DEFB
F2C1
171D1F
880
DEFB
F2C4
1B2564
890
DEFB
F2C7
626340
900
DEFB
F2CA
001110
910
DEFB
F2C0
0F0E0C
920
DEFB
F200
0B0A09
930
DEFB
F203
08133B
940
DEFB
F2D6
1D2E1F
950
DEFB
F2D9
350030
960
DEFB
F2DC
182014
970
DEFB
F2DF
343E1C
980
DEFB
F2E2
122132
990
< DEFB
F2E5
242C16
1000
DEFB
F2E8
2A1E2F
1010
DEFB
F2EB
1A3633
1020
DEFB
F2EE
372822
1030
DEFB
F2F1
202631
1040
DEFB
F2F4
383F3C
1050
DEFB
F2F7
3A6401
1060
DEFB
F2FA
57614E
1070
DEFB
F2FD
57535A
1080
DEFB
F300
496055
1090
DEFB
F303
054B50
1100
DEFB
F306
404A5C
1110
DEFB
F309
5E5B52
1120
DEFB
F30C
595856
1130
DEFB
F30F
5D4F4C
1140
DEFB
F312
5F5154
1150
DEFB
F315
656667
1160
DEFB
F318
47
1170
DEFB
F319
1180
END
auf eine Puff er stufe zu verzi eil¬
ten. Geeignet sind u. a, die
Schaltkreise U 4050 (enthält 6
CMOS -Treiber) und DL 006 AND-
Gatter), wie den Bildern 5.42
und 5. 43 zu entnehmen ist. Bei
Verwendung des CMOS-Treibers
sind eventuell Pul 1 -up-Wider-
stände erforderlich, wenn er mit
TTL-Pegel angesteuert wird. Eine
sehr elegante Lösung ist auch
der Einsatz von Optokopplern.
#00, #77, #00
#00, #00, #00
#00, #00, #00
#00, #00, #00
#00, #00, #00
#00, #00, #00
#00, #00, #71
#42, #43, #41
#48, #04, #02
#17 , #1D , #1F
#1B , #25 , #64
#62, #63, #40
#00, #11, #10
#0F , #0E , #0C
#0B , #0A , #09
#08 , #13 , #38
#10 , #2E , #1F
#35, #00, #30
#18, #20, #14
#34 , #3E , #1C
#12, #21, #32
#24 , #2C , #16
#2A , #1E , #2F
#1 A , #36 , #33
#37, #28, #22
#20, #26, #31
#38 , #3F , #3C
#3A , #64 , #01
#57 , #61 , #4E
#57 , #53 , #5A
#49, #60, #55
#05 , #4B , #50
#4D , #4A , #5C
#5E,#5B,#52
#59, #58, #56
#50 , #4F , #4C
#5F , #51 , #54
#65, #66, #67
#47
Tabelle 5. 11 enthält das Kommen -
tierte Listlng des Treiberpro-
granins. Es ist lauf fähig auf der
48-KByte-Version des ZX Spectrum
und Kann auf beliebige Adressen
im oberen 32-KByte-Speicherbe-
reich geladen werden. Das Pro¬
gramm INIT muß nach' dem Laden
einmal durchlaufen werden. ln
der unteren 32-KByte-Hälfte ist
das Programm nicht ohne weiteres
lauf fähig, da durch die mit dem
53
Programml auf nicht synchroni¬
sierten ULA-Zugriffe (Bildauf¬
bau) die Zeitkonstanten verän¬
dert werden.
5. 7. 2. Fernschreiber-Anschluß
Ein anderer serieller, sehr
störsicherer Standard ist die
Norm RS 232/TTY. Hier werden die
logischen Zustände durch das
Fließen oder Fehlen eines Stroms
von meist 20 mA dargestellt. Mit
einer solchen Schnittstelle sind
z. B. Fernschreiber ausgestat¬
tet, die zuweilen als Altgeräte
sehr preiswert Erhältlich sind.
Sie lassen sich als einfache
(wenn auch sehr laute) Ausgabe¬
möglichkeit für Kleincomputer
einsetzen, wenngleich Schrift¬
bild und Zeichenumfang nur ge¬
ringen Ansprüchen gerecht wer¬
den. Zur Kopplung eines Fern¬
schreibers mit dem ZX Spectrum
kann das im Bild 5.44 darge¬
stellte Interface verwendet wer¬
den. Um einen Strom von 20 mA
durch den Empfangsmagneten des
Fernschreibers zu treiben, ist
eine Spannung von etwa 40, V er¬
forderlich. Diese Spannung kann
sinnvoll nur durch ein separates
Netzteil erzeugt werden. Um bei
eventuellen Fehlern in diesem
Netzteil den Computer nicht zu
gefährden, wurden Nieder- und
Hochspannungsseite des Inter¬
faces durch einen Optokoppler
galvanisch getrennt. Die Ansteu¬
erimpulse werden durch den Spec¬
trum an dessen Tonband-Anschluß
bereitgestellt (MIC- bzw. EAR-
Buchse). Mit einem Operations¬
verstärker ( IC1 ) werden die Im-
SY 360
220V-
Femschreib-
maschine
Bild 5.45 Layout für das RS 232/TTY- In t er face
54
Bild 5. 46 Bes t UcKungspl an
pulse auf etwa 9 V verstärkt und
über einen Schal ttransistor dem
Optokoppler IC2 zugeführt. Die¬
ser schaltet auf der Hochspan¬
nungsseite den Transistor VT2.
Die Sekundärspannung des Netz¬
transformators ist so zu bemes¬
sen, daß durch den Empfangsma¬
gneten des Fernscheibers 20 mA
fließen. Diese Spannung kann zu¬
nächst experimentell mit einem
Stelltransformator ermittelt
werden. Primärseitig ist eine
Sicherung von etwa 35 mA vorzu¬
sehen. Da die Schaltung Netzpo¬
tential führt, ist ein berüh¬
rungssicherer Aufbau, gegebenen¬
falls unter Hinzuziehung eines
Fachmanns, erforderlich! Zur
Ansteuerung des Fernschreiber-
Interfaces kann ein Programm
verwendet werden, das ähnlich
wie das Steuerprograrm für die
el ektroni sehe Schreibmas chine
arbeitet. Natürlich sind dann
die Ausgabeadresse, die Baudrate
und die Codiertabelle entspre¬
chend zu ändern. Layout und
Bestückungsplan für das Fern¬
schreiber-Interface sind in den
Bildern 5.45 und 5.46 darge¬
stellt, den Musteraufbau zeigt
Bild 5. 47.
5. 6. Pegel anpassung fllr Kas¬
settenrecorder
Unter den Massenspeichern für
Heim- und Kleincomputer nehmen
zumindest zur Zeit Magnetband¬
kassetten eine dominierende
Stellung ein, Trotz der zuneh¬
menden Verfügbarkeit schneller
und sicherer Speichermedien auch
für diese Geräteklasse lohnt es
sich deshalb, die Übertragung
vom bzw. zum Kassettenrecorder
zu verbessern. Dadurch kann eine
höhere Datensicherheit oder eine
Bild 5.47 Must er auf bau
55
+5V
Bild 5.46 Schaltung der SAVE/LOAD-Pegelanpassung
schnellere Aufzeichnung erreicht
werden. Die Pegel anpassung er¬
möglicht die Verwendung von Auf-
zeichnungsgeräten mit Dioden¬
buchse an (regelmäßig) nicht da¬
für geeigneten Computern. Uber
das Interface im Bild 5.46 funk¬
tioniert die Zusammenarbeit des
ZX Spectrum mit dem Kassettenre¬
corder reibungslos und ohne
eventuelle Rückkopplungen auch
bei höheren Übertragung spaten.
Es entfällt damit auch das lä¬
stige Umstecken von Kopfhörer-
und Diodenstecker, wie es zur
Vermeidung von Rückkopplungen
etwa bei Verwendung des Geracord
erforderlich war. Daneben bietet
das Interface einen gepufferten
Video/Audio-Ausgang für den An¬
schluß eines Monitors.
Zur Funktion der Schaltung: Beim
Abspeichern von Daten gibt die
CPU die Daten seriell über die
Datenleitung D3 an den ULA-Chip.
Wird ein Flipflop (IC4) an diese
Datenleitung geschaltet und das
Einspeichern Uber IC3 von IORQGE
und WR abhängig gemacht, steht
am Ausgang des Flipflops genau
das Signal, das auch an der MIC-
Buchse ansteht, allerdings mit
steileren Flanken und (über RI 6)
einstellbarem Pegel. Beim Einle¬
sen wird das Signal vom Kasset¬
tenrecorder durch 1 den Opera¬
tionsverstärker ICl in ein
Rechtecksignal umgewandelt und
über den Tri-State-Treiber IC2
genau dann auf die Datenleitung
D6 geschaltet, wenn die CPU die
Daten vom ULA-Chip lesen will.
Dieser Zustand ist durch die
aktivierten Signale IORQGE und
RD gekennzeichnet, die ebenfalls
von IC3 ausgewertet werden. Der
Audio -Anschluß für den Monitor
arbeitet wie der Save-Kanal, al¬
lerdings unter s Verwendung der
Datenleitung D4. Der Video-An¬
schluß wird über VT1 gepuffert,
wie es bereits im Abschnitt 5. 3.
56
Z X - S/L 86 - 0 6 jr
Bild 5.49 Layout für das SAVE/LOAD -Moduls
beschrieben wurde. Der Abgleich
der Schaltung beschrankt sich
auf' die Einstellung von R16 für
den Aufnahmepegel und RI 5 für
den Audio -Pegel.
Zur Verringerung der Flanken-
steilheit der Impulse am Ausgang
Audio Out kann erforderlichen¬
falls C3 etwas vergrößert wer¬
den. Zu steile Flanken führen
insbesondere bei Recordern mit
Aussteuerungsautomatik zu einem
"Zustopfen" des Eingangsverstär¬
kers. Die Interface-Platine nach
Bild 5.49 ermöglicht die Paral¬
lelschaltung von jeweils zwei
Bild 5. 50 BestücKungsplan
57
A
• - . ■ ' #
Bild 5. 51 Musteraufbau
Buchsen für Tonband (X3) bzw.
Monitor (X2). Sofern das nicht
gewünscht wird, braucht nur die
Jeweils erforderliche Buchse
bestückt zu werden. Spezielle
Software ist nicht erforderlich,
das Interface arbeitet mit den
normalen Tape -Befehlen Save,
Load, Merge usw.
5. 8. 1. Das Bandfonnat
Es gibt zwar nur wenige grund¬
sätzliche Verfahren für die Auf¬
zeichnung von Daten auf dem Ma¬
gnetband, die Art und Weise
aber, wie diese Grundprinzipien
verwendet werden, ist von Compu¬
ter zu Computer unterschiedlich.
Infolgedessen besteht zwischen
verschiedenen Kleincomputer typen
nur selten Kompatibilität der
Bandaufzeichnungen. Insbesondere
für den Daten- bzw. Programmaus¬
tausch über größere Entfernungen
ist aber die Aufzeichnung auf
einer Magnetbandkassette nahezu
unentbehrlich. Genaues Wissen
über das Bandaufzeichnungsformat
ist deshalb nötig, um die Soft¬
ware auf Rechnern anderen Typs
zumindest lesen zu können. Alle
Banddateien des ZX Spectrum wer¬
den in zwei Blöcken aufgezeich¬
net, dem Header (Kopf) und dem
Tabelle 5. 12 Datentypen-Ubersicht
Codierung
Typ des Datenblocks
0
Bas i c -Programm
1
Numerisches Feld
2
Zeichenkettenfeld
3
Maschinencode oder Bild¬
schirminhalt
58
619.4us
2168 T
210/js
735 T
i
488.6/js
1710 T
i
244.3ns
855T
J
619.4/js
2168T
Leitsignal
190.6ns
667 T
^ 488. 6/js
1710T
1-Signal
244.3ns
855 T
O-Signal
SyndronisationssignQl Datensignal
Bild 5. 52 Signal folge der Bandaufzeichnung des ZX Spectrum
Tabelle 5. 13 Verwendung der Bytes 14 bis 17 im Header
Typ Byte 14 Byte 15 Byte 16 Byte 17
0 Autostart -Zeilennummer Nummern der Bytes
1/2 - Feldname -
3 Datenanfangsadresse -
Datenblock. Der Header ist aus
aus 19 Bytes auf gebaut. Das
erste Byte des Headers ist stets
Null (Kennbyte). Das zweite Byte
enthält Informationen über den
Typ des auf den Header folgenden
Datenblocks entsprechend der
Tabelle 5. 12.
Die nächsten 10 Bytes enthalten
den Dateinamen als ASCII -Zei¬
chen, es folgen 2 Bytes zur
Speicherung der Länge des fol¬
genden Datenblocks. Die Bytes 14
bis 17 werden Je nach Daten¬
blocktyp unterschiedlich verwen¬
det, wie der Tabelle 5.13 ent¬
nommen werden kann.
Das letzte Byte, das sogenannte
Parity-Byte, wird zu Prüfzwecken
beim Laden und Speichern der
Banddateien verwendet.
Der Datenblock ist einfacher als
der Header auf gebaut. Er enthält
zwei Bytes mehr, als in der
Längeninformation des Headers
angegeben: das führende Type-
Byte und das Parity-Byte am
Ende. Nach dem Type -Byte folgen
die Datenbytes unmittelbar auf¬
einander. Jeder Block beginnt
mit einem Leitton von etwa
800 Hz, dessen Ende durch einen
Synchronisationspuls mit einer
Low-Zeit von 190,6 [xs und einer
High-Zeit von 210 [xs markiert
wird. Für Jedes Datenbit wird
eine vollständige Rechteck¬
schwingung abgelegt, Sie dauert
488, 6 |is für ein Low-Bit bzw.
977, 2 |jls für ein High-Bit. Das
Aufzeichnungsverfahren ist sehr
zuverlässig, dafür aber nicht
besonders schnell [6].
»
5. 9. Anwendungen von Klein¬
computern ln der Meß-
und Prüftechnik
5. 9. 1. 8-Kanal -Digital Voltmeter
Die Schaltung entsprechend Bild
5.53 zeigt ein vol lständiges Di¬
gitalvoltmeter für dem Meßbe-
59
Bild 5. 53 Schaltung des Digital Voltmeters
Meßbereich
ra
*B
Rc
rd
re
bis 1 V
-
-
-
-
-
bis 10 V
-
-
9 MQ
1 MQ
-
bis 100 V
-
9 MQ
900 kQ
100 kQ
-
bis 1000 V
9 MQ
900 KQ
90 kQ
10 kQ
. 1
bis 10 mA
_
_
-
-
100 Q
bis 100 mA
-
-
-
1 Q
9 Q
bis 1000 mA
-
i
-
1 Q
-
Der 1 -Q-Wi der stand im Meßbereich 1000 mA muß mit
mindestens 1 W belastbar sein!
reich von -99 mV bis +999 mV und
einen elektronischen Meßstel len -
umschalter für 8 Eingänge zum
Anschluß an den ZX Spectrum Als
AD-Wandler wird der C 520 einge¬
setzt. Dieser älteste Vertreter
der monolithisch integrierten
AD-Wandler ist mittlerweile fast
vollständig durch das System
C 500 abgelöst. Aufgrund seiner
Bild 5. 54 Spannungstell er vor
satz für Vielfachmesser
60
Tabelle 5. 14 Treiberprogranm für das Digitaivollmeter
(Basic-Teil)
10
LET PU=64200
20
DIM B$( 8 , 17 )
30
FOR 1=1 TO 8
40
PRINT AT 20,0; "SPANNUNG ";I
50
INPUT "BEMERKUNG:" ;B$(I)
60
NEXT I
70
PRINT AT 20,0;"
80
FOR 1=1 TO 8
90
PRINT AT 2*1+2 , 0 ; "U( " ; I ; " ) = V
" ; B$( I )
100
NEXT I
110
LET 1 = 1
120
PRINT AT 2*1 + 2, 2; INVERSE 1 ; I
130
PRINT AT 2,17; "BEMERKUNGEN"
140
PRINT AT 20,0; "KANALWECHSEL: ZIFFER
1 BIS 8"
150
PRINT AT 21,0; "3EOE ANDERE TASTE: ABBRUCH"
160
LET 3=1
170
OUT 207,1-1
180
RANOOMIZE USR 64000
190
IF PEEK PU=58 THEN POKE PU, 45
REM NEG.VZ
200
IF PEEK PU AND PEEK (PU+1) AND PEEK
(PU+2)=59
POKE PU, 43
POKE ( PU+1 ) , 43
POKE ( PU+2 ) , 43
REM POS.UEBERLAUF
210
IF PEEK (PU+1) AND PEEK (PU+2)=58
POKE (PU+1), 45
POKE (PU+2), 45
REM NEG . UEBERLAUF
THEN
220
IF PEEK PU=48 THEN
POKE PU, 32
230
PRINT AT 2*1+2, 7;
CHR$ PEEK PU ; CHR$ PEEK (PU+1);CHR$
PEEK (PU+2)
240
LET A$= INKEY$
250
IF A$=""THEN GO TO 160
260
IF VAL A$ 1THEN GO TO 240
270
IF VAL A$ 8THEN GO TO 240
280
LET I=VAL A$
v
290
PRINT AT 2*3+2, 2;INVERSE 0 ; 3
300
GO TO 120
310
CLEAR 63999
LOAD "C520 . COD"CODE
CLS
GO TO 0
320
REM SAVE AUF BAND
330
SAVE "C520 . BAS"L INE 310
340 SAVE "C520 . C0D"C0DE 64000,200
350 VERIFY "C520.BASM
VERIFY "C520 . C00"C0QE
Tabelle 5. 15 Treiber pro granm ftlr das Digital Voltmeter
(Maschinencode-Tei 1 )
10
.******************
%
20
:*** GVM - 1
JODE ***
30
.******************
40
5
FAOO
50
ORG
64000 ;
1 ANFANGSADRESSE
FACA
60
PUFFER
EQU
64202 ;
;MESSWERTPUFFER
FAOO
F5
70
ANFANG PUSH
AF
FA01
E5
80
PUSH
HL
FA02
21CAFA
90
LD
HL, PUFFER
HL IST PUFFERZEIGER
FA05
DBEF
100
LSD
IN
A , ( 239 )
MESSWERT EINLESEN
FA07
CB67
110
BIT
4 , A
LSD ?
FA09
20FA
120
JR
NZ , LSD
NEIN: WARTEN AUF LSO
FAOB
OBEF
130
IN
A, (239)
JA: NOCHMAL EINLESEN
FAOD
CB-67
140
BIT
4 , A
UND ÜBERPRÜFEN
FAOF
20F4
150
JR
NZ , LSD
WAR NUR STÖRNADEL
FA1 1
C03BFA
160
CALL
MW
DIGIT ABSPEICHERN
FA14
DBEF
170
NSD
IN
A , (239)
MESSWERT EINLESEN
FA16
CB6F
180
BIT
5 , A
NSD ?
FA18
20FA
190
JR
NZ , NSD
NEIN: WARTEN AUF NSD
FA1A,
DBEF
200
IN
A, (239)
JA: NOCHMAL EINLESEN
FA1C
CB6F
210
BIT
5 , A
UND ÜBERPRÜFEN
FA1E
20F4
220
JR
NZ , NSD
WAR NUR STÖRNADEL
FA20
CD3BFA
230
CALL
MW
DIGIT ABSPEICHERN
FA23
DBEF
240
ENDNSD
IN
A , ( 239 )
MESSWERT EINLESEN
FA25
CB6F
250
BIT
5,A
NSD-IMPULS ZU ENDE ?
FA27
28FA
260
JR
Z, ENDNSD
NEIN: SOLANGE WARTEN
FA29
DBEF
270
MSD
IN.
A, (239)
MESSWERT EINLESEN
FA2B
CB6F
280
BIT
5 , A
MSD ?
FA20
20FA
290
JR
NZ , MSD
NEIN: WARTEN AUF MSD
FA2F
DBEF
300
IN
A, (239)
NOCHMAL EINLESEn
FA31
CB6F
310
BIT
5 , A
UND ÜBERPRÜFEN
FA33
20F4
320
JR
NZ.MSO
WAR NUR STÖRNADEL
FA35
CD3BFA
330
CALL
MW
DIGIT ABSPEICHERN
FA38
El
340
POP
HL
FA39
Fl
350
POP
AF
FA3A
C9
360
RET
RÜCKKEHR ZUM BASIC
FA3B
CD47FA
370
MW
CALL
ZS
ZEITSCHLEIFE
FA3E
DBEF
380
IN
A, (239)
MESSWERT EINLESEN
FA40
E60F
390
AND
#0F
NUR UNTERE 4 BIT
FA42
F630
400
OR
#30
30H ADDIEREN
FA44
77
410
LD
(HL ) , A
ABSPEICHERN
FA45
2B
420
•*
OEC
HL
NÄCHSTER WERT
FA46
C9
430
RET
FA47
3E0A
440
ZS
LD
A, 10
A-REGISTER
FA49
30
450
ZS1
DEC
A
OECREMENTIEREN
FA4A
20FD
460
JR
NZ.ZSl
BIS A = 0
FA4C
C9
470
RET
FA40
480
END
62
ZX - DUM 88-10 jr
Bild 5. 55 Layout ftlr das Digital Voltmeter
— Brücke
Bild 5. 56 BestücKungsplan
guten Verfügbarkeit wird er liier
dennoch verwendet.
Der C 580 erlaubt in der angege¬
benen Beschaltung typisch etwa
100 Messungen pro Sekunde. Bel
zyklischer Abfrage aller 8 Kanä¬
le wird daher Jeder Kanal unter
\
Berücksichtigung der Progranm-
laufzeit nur etwa iOmal in Jeder
Sekunde abgefragt. Damit sind,
schnelle Spannung sänder ungen nur
bedingt erfaßbar. Sollen größere
als die angegebenen Spannungen
verarbeitet werden, sind ent-
63
Bild 5. 57 Musteraufbau
t
sprechende Spannungstei 1 er vor¬
zusehen. Ein Beispiel dafür ist
im Bild 5. 54 angegeben.
Kleinere Spannungen oder Wech¬
sel Spannungen sind über Meßver¬
stärker bzw. Meßgleichrichter
aufzubereiten. Die Abfrage des
Digitalvol tmeters sowie die Ka-
nalumschal tung erfolgt softwa¬
regesteuert über die in den Ta¬
bellen 5. 14 und 5. 15 angegebenen
Treiberprogranme. Der Basic-Teil
wird mit LOAD " " geladen. Er
startet sich selbst und lädt den
CODE-Teil nach. Die dann abge¬
forderten Bemerkungen kennzeich¬
nen lediglich die acht Meß-Kanä¬
le. Sie können bei Nichtbedarf
mit 8 x ENTER als Leerstring
eingegeben werden.
Die Schaltung arbeitet wie
folgt: Aus den Schal tkreisen IC2
(DL 020) und IC3 (DS 3205 oder
74 LS 133) wird ein Adreßdekoder
gebildet. Dieser aktiviert bei
der Adresse 239 (EFH) den
DS 3232 (IC1), der als Eingabe¬
port geschaltet ist, wodurch das
Ausgang sbitmuster des AD-Wand-
lers C 520 (IC4) in den Rechner
eingelesen wird. Bei Ausgabe der
Werte 0 bis 7 an die Adresse 207
(CFH) werden diese im CMOS-Regi-
ster IC5 ( V 4042) zwischenge-
Tabelle 5. 16 Anschlußbelegung des An¬
wendersteckverbinders des Digitalvoltme¬
termoduls
Kontakt
A-Ebene
B-Ebene
1
Eingang 5
Eingang 3
2
Eingang 7
Eingang 2
3
Eingang 8
Eingang 1
4
Eingang 6
Eingang 4
5
+5 V
Masse
speichert und liegen somit stän¬
dig am Meßstel lenumschalter IC6
( V 4051) an. Damit ist die
Durchschaitung von 8 verschiede¬
nen Eingangsspannungen an den
AD -Wan dl er möglich.
Der AD-Wandler C 520 wird mit R8
bei kurzgeschlossenem Eingang
und gestartetem Treiberprögramm
auf Anzeige 000 mV und mit R9
bei angelegten z. B. 990, mV (mit
Digital Voltmeter Kontrollieren)
auf 990 mV Bildschirmanzeige ab¬
geglichen. Dieser Abgleich ist
wechselseitig zu wiederholen.
Weitere Abgleicharbeiten sind
nicht erforderlich.
Für die Einsteller R8 und R9
sollten Spindel Potentiometer und
für den Kondensator CI ein leck¬
stromarmer Typ mit geringem TK
(kein Elektrolytkondensator! )
verwendet werden.
5. 9. 2. Schal tKrelstester
Häufig stehen dem Elektronikama¬
teur gebrauchte integrierte
Schaltkreise zur Verfügung, über
deren Funktionsf ähigkeit Unklar¬
heit besteht. In solchen Fällen
wäre es wünschenswert, die
Schaltkreise vor dem Einbau in
die Schaltung zu überprüfen, da
einerseits die nachträgliche
Fehlersuche oft zeitraubend ist
und andererseits das Aus löten
defekter Schaltkreise die Plati¬
ne beschädigen kann. Die Schal¬
tung nach Bild 5. 58 bietet eine
Möglichkeit für die statische
Überprüfung digitaler integrier¬
ter Schaltkreise. Kernstück der
Schaltung ist eine PIO U Ö55t
die über einen Adreßdekoder
U 74 HCT 136 DK (anschlußkompa¬
tibel zu DS 6205) in Verbindung
mit einem DL 020 D gemäß Tabel-
8x10k
Bild 5. 56 Schaltung des Schal tkrelstesters
/
65
Tabelle 5. 17 Adreß Zuordnung des Schal t-
Kreistesters
Port und
Funktion
Adresse
dez. hex.
PIO
Port
A Daten
79
4F
PIO
Port
B Daten
95
5F
PIO
Port
A Steuerung
111
6F
PIO
Port
B Steuerung
127
7F
Bild 5. 59 Softwaregesteuerte Massezuschal tung (Prinzip)
le 5. 17 in den Adreßraum des
ZX Spectrum eingeordnet ist.
An die Portleitungen der PIO ist
eine löpolige Testfassung über
150-Q-Widerstände angeschlossen.
Diese Widerstände begrenzen den
Strom in den Fällen, in denen
eine als Ausgang definierte PIO-
Portleitung mit einem Schalt-
kreisausgang verbunden ist und
beide unterschiedliche Pegel
führen. Sämtliche Anschlüsse der
Testfassung liegen über Pull-up-
Wi der stände von 10 kß auf +5 V.
Damit werden die für CMOS-
Schaltkreise erforderlichen H-
Pegel garantiert. Allerdings ist
eine Erkennung von Open-Col lec-
tor-, Open-Drain- und Tri -Sta¬
te -Ausgangs stufen damit nicht
möglich.
Die Prüflinge werden immer
linksbündig in die Testfassung
gesteckt. Mit den DIL-Schaltern
wird PIN 7 (bei 14poligen) oder
PIN 8 (bei löpoligen Schaltkrei¬
sen) mit Masse verbunden. Auf¬
grund der Struktur der DATA-Zei-
len im Test Programm müssen beim
Testen von 14poligen IS beide
DIL-Schalter geschlossen werden!
Unter Nutzung der Schaltung nach
Bild 5. 59 könnte das Massepoten¬
tial auch softwaregesteuert zu¬
geschaltet werden. Hierbei ar¬
beitet ein Flipflop DL 074 als
66
Bild 5 . 61 Layout (Bestückungsseite) für den Schaltkreistester
2-bit-Ausgabeport. Mit einer
solchen Testanordnung und einem
entsprechend modifizierten Trei-
berprograimi Könnten dann belie¬
bige 14- bis löpolige Schalt¬
kreise selbständig erkannt und
getestet werden. In Verbindung
mit dem Prüfprogramm gemäß Ta¬
belle 5. 18 können folgende
Schaltkreise sowie deren .Äquiva¬
lenztypen getestet werden:
TTL- Typen: 7400 , 7402 1 7403 ,
7404 1 7405 , 7406 , 7406 , 7410 ,
7412 , 7413 , 7414 , 7416, 74£0,
67
7421 ,
7426, 7430,
, 7455,
7457,
7438 ,
7440, 7446 ,
, 7447,
7450,
7451 ,
7455, 7454,
, 7474,
7486,
74128 ,
74i 5£\
74136,
74151,
741 53,
74157,
74192,
74193;
DS- Typen: 8205 ;
CMOS -Typen: 4<%>i,
, 40ii,
4012,
4028,
Te 1 1 g e s chädi g t e Scha 1 tkr e i s e
werden als defekt klassif iziert.
Zwar wäre mit geringem Aufwand
eine (z. B. grafische) Ausgabe
der defekten Gatter möglich,
doch neigen teil geschädigte IS
eher zu Total ausfäl len, so daß
von ihrer Verwendung abgeraten
wird. Die Schaltkreisbibliothek
68
Tabelle 5. lö Treiberprogramm für den Schal tkreistester
10 REM IC-TESTER
20 LET aco=lll ,bco=127 ,adat=79,bdat=95
30 CSIZE 4,8
40 LET af =0
LET bf =0 '
RESTORE
CLS
GO SUB 1100
50 OUT aco , 207
OUT aco, 255
OUT bco , 207
OUT bco, 255
60 PRINT AT 17 , 21 ; "Typ bekannt ? (j/n)"
70 LET t$=INKEY$
IF t$=" "THEN
GO TO 70
80 IF t$=" j"0R t$=" J"THEN
GO TO 500
90 IF t$="n"0R t$="N"THEN
GO TO 110
100 GO TO 70
110 LET ai = IN adat
LET bi=IN bdat
120 FÜR 1=1T0 5
130 REAO av
READ by_.
140 IF (av ai)0R (bv bi )THEN GO TO 160
150 GO TO 180
160 NEXT 1
170 IF 1=6THEN
GO TO 490
180 GO SUB ON 1;190,2Q0,210,220,230
GO TO 310
190 RESTORE 250
RETURN
200 RESTORE 260
RETURN
210 RESTORE 270
RETURN
220 RESTORE 280
RETURN
230 RESTORE 300
RETURN
240 DATA 27,219,31,187,31,251,63,251,21,171
250 DATA "7400", 228, 39, 3, 27, 219, 54, 111, 45, 183
260 DATA "7410", 224, 71, 4, 31, 187, 47, 95, 54, 239, 57, 247
270 DATA "7420", 224, 7, 5, 31, 251, 58, 95, 57, 159, 51, 207, 43, 215
280 DATA "7430", 192, 7, 10, 63, 251, 63, 39, 63, 71, 31, 103
290 DATA 47,103,55,103,59,103,61,103,62,103,63,99
300 DATA "7404", 234, 87, 2, 42, 87, 21, 171
310 READ t$
320 PRINT AT 15 , 15 ; "Schaltkreis aequivalent ”;t$
330 READ ap
READ bp
340 OUT aco , 207
OUT aco, AND(ap,255)
OUT bco,207
OUT bco, AND(bp,255)
350 READ za
FOR z=lT0 za
360 READ ao
READ bo
370 OUT adat,AN0(ao,255)
OUT bdat , AND(bo ,255)
380 LET ai=IN adat,bi=IN bdat
390 LET af=0R(af,(X0R(ai,ao)))
400 LET bf=0R(bf, (X0R(bi ,bo) ) )
410 NEXT z ' .
420 IF af = OANO bf = 0THEN
PRINT AT 17 , 17 ; "IC ist f unktionstuechtig"
GO TO 440
430 PRINT AT 17,21;" IC ist defekt !
440 PRINT AT 20,20;"Neuer Test? (j/n)"
450 LET a$=INKEY$
460 IF a$=" J"OR a$="J"THEN
GO TO 40
470 IF a$="n"0R a$="N"THEN
STOP
480 GO TO 450
490 CLS
PRINT AT 15 , 15 ; "Schaltkreis nicht identifizierbar !"
GO TO 1090
500 PRINT AT 17,21;"Typ eingeben:
INPUT t$
510 LET ty=VAL t$
520 IF ty=7450THEN
RESTORE 530
GO TO 310
530 DATA "7450", 224, 7, 3, 52, 215, 43, 79, 32, 99
540 IF ty=7451THEN
RESTORE 550
GO TO 310
550 DATA "7451", 224, 7, 3, 31, 251, 52, 151, 43, 15
560 IF ty =7453THEN
RESTORE 570
GO TO 310
570 DATA "7453", 192, 7, 3, 63, 187, 52, 215, 11, 79
580 IF ty=7454THEN
RESTORE 590
GO TO 310
590 DATA "7454", 192, 7, 3, 31, 155, 20, 151, 11, 15
600 IF ty=74000R ty=74370R ty=741320R ty=7403THEN
LET 1=1
GO TO 180
70
610 IF ty=74370R ty=7430OR ty=7426THEN
LET 1=1
GO TO 180
620 IF ty=74100R ty=7412THEN
LET 1=2
GO TO 180 •
630 IF ty=74200R ty=74130R ty=7440THEN
LET 1=3
GO TO 180
640 IF ty=7430THEN LET 1=4
GO TO 180
650 IF ty=74040R ty=74050R ty=7406THEN
LET 1=1
GO TO 180
660 IF ty=74140R ty=7416THEN
LET 1=5
GO TO 180
670 IF ty=7408THEN
RESTORE 680
GO TO 310
680 DATA "7408", 228, 39, 3, 63, 255, 18, 75, 9, 147
690 IF ty=74460R ty=7447THEN
RESTORE 700
GO TO 310
700 DATA "7447", 136, 255, 13, 24, 1,4, 255, 28, 65, 92, 231, 13, 137
710 DATA 93,131,30,39,94,19,31,17,95,199,60,1,124,3,61,185
720 IF ty=7474THEN
RESTORE 730
• GO TO 310
730 DATA "7474”, 240, 15, 7, 17, 139, 40, 23, 43, 215, 31, 251, 27, 219
740 DATA 25,155,45,183
750 IF ty=74192THEN
RESTORE 760
GO TO 310
760 DATA "74192", 230, 49, 7, 119, 183, 16, 89, 24, 57
770 DATA 16,25,92,57,76,41,16,25
780 IF ty=74193THEN
RESTORE 790
GO TO 310
790 DATA "74193", 230, 49, 7, 119, 183, 16, 89, 24, 57, 16, 25, 126
800 DATA 57,110,41,16,25
010 IF ty=8205THEN
RESTORE 820
GO TO 310
820 DATA "8205", 192, 255, 11, 96, 127, 97, 191, 98, 223, 99, 239, 100
830 DATA 247,101,251,102,253,39,255,111,255,119,255,71,255
840 IF ty=74153THEN
RESTORE 850
GO TO 310
050 DATA "74153", 192, 3, 9, 1,129, 0,1, 96, 7, 0,65, 80, 79, 2, 1,74
860 DATA 19,1,65,70,99
71
870 IF ty=74020R ty=74330R ty=74128THEN
RESTORE 880
GO TO 310
880 DATA "7402", 201, 147,4,9,147, 36, 39, 18, 73, 34, 79
890 IF ty=74860R ty=74136THEN
RESTORE 900
GO TO 310
900 OATA "7486", 228, 39, 4, 0,3, 34, 183, 45, 111, 27, 219
910 IF ty=7421THEN
RESTORE 920
GO TO 310
920 DATA "7421", 224, 7, 5, 15, 223, 23, 123, 29, 187, 30, 235, 59, 243
930 IF ty=74151THEN
RESTORE 940
GO TO 310
940 DATA "74151", 176, 1,9, 24, 1,20, 9, 18, 5, 17, 13, 16, 131, 16, 75
950 DATA 16,39,16,31,104,1
960 IF ty=74157THEN
RESTORE 970
GO TO 310
970 DATA "74157", 200, 19, 9, 0,1, 36, 37, 90, 91, 126, 127, 1,1, 109
980 OATA 55,19,73,127,127,55,237
990 IF ty=4028THEN
RESTORE 1000
GO TO 310
1000 DATA "4028", 255, 195, 11, 4, 1,0, 69, 2, 33, 0,165, 1,17, 32, 21
1010 DATA 64,49,8,53,0,11,16,13,0,61
1020 IF ty=4001THEN
RESTORE 1030
GO TO 310
1030 DATA "4001", 204, 51, 4, 12, 51, 17, 71, 34, 139, 50, 207
1040 IF ty=4011THEN
RESTORE 1050
GO TO 310
1050 OATA ”4011”, 204, 51, 4, 12, 51, 29, 111, 46, 187, 51, 207
1060 IF ty=4012THEN
RESTORE 1070
GO TO 310
1070 OATA "4012", 193, 131, 6, 1,131, 3, 155, 5, 147, 9, 163, 17, 195, 3
1080 CLS
PRINT AT 15,8;"Dieser Typ ist nicht ";
PRINT "im Testprogramm enthalten !"
1090 FOR i=OTO 500
NEXT i
GO TO 40
1100 CLS
PRINT AT 0 , 0 ;CSIZE 12,12;0VER 1;" IC-TESTER"
1110' PRINT
PRINT
1120 PRINT "Das Programm ermoeglicht die schnelle ";
PRINT "Ueberpruefung der IC-Typen"
PRINT
72
1130
PRINT
"7400
7402
7403
7404
7405
7406
II
PRINT
"7408
7410
7412"
1140
PRINT
"7413
7414
7416
7420
7421
7426
II
PRINT
"7430
7433
7437"
1150
PRINT
"7438
7440
7446
7447
7450
7451
II
PRINT
"7453
7454
7474"
1160
PRINT
"7486
74128
74132
74136
74151
74153
II
PRINT
"74157
74192
74193"
1170
PRINT
PRINT
"DS-Typen :
8205"
1180
PRINT
PRINT
"CMOS-
Typen :
4001
4011
4012
4028
ii
1190 PRINT
PRINT "Die Typen 7400,7404,7410,7420,7430 bzw.
PRINT "die Aequivalente werden"
1200 PRINT "erkannt. Fuer andere IC's ist der
PRINT "Schaltkreistyp einzugeben"
1210 PRINT
PRINT "Es koennen alle TTL- und CMOS-Reihen
PRINT "getestet werden."
1220 PRINT "Durch Einfuegen weiterer DATA-Anweisungen " ;
PRINT "koennen neue"
1230 PRINT "IC-Typen in das Programm aufgenommen werden.
1240 PRINT
1250 PRINT "Testbeginn ";CSIZE 12,12;"T"
1260 LET a$= INKEY$
IF a$="t"0R a$="T"THEN
GO TO 1280
1270 GO TO 1260
1280 CLS
RETURN
Tabelle 5. 19 Aufbau einer DATA-Zeile
für den IC-Tester
Funktion
\
Beispiel
DATA
Schlüsselwort
DATA
ty
Typ-String
”7400"
ap
E/A-Maske PlO-Port
A
228
bp
E/A-Maske PlO-Port
B
39
za
Anzahl der Testschritte
3
ao
Testbitmuster Port
A
27
bo
Testbitmuster Port
B
219
ao
Testbitmuster Port
A
54
bo
Testbitmuster. Port
B
111
,
,
za
45
*
*
ma
183
ao v
Testbitmuster Port
A
bo
Testbitmuster Port
B
l
Tabelle 5.20 Aufbau der Bltmuster für
14polige Schaltkreise
E/A-Maske Port A: 1 1 X X‘ X X X X
E/A-Maske Port B: X X X X X X 1 i
Testbitmuster Port A: OOXXXXXX
Testbitmuster Port B: X X X X X X 1 1
X = 0 für IS-Eingang, X = 1 für Ausgang
Tabelle 5.21 Aufbau der Bltmuster für
16polige Schaltkreise
E/A-Maske Port A: 1XXXXXXX
E/A-Maske Port B: XXXXXXX1
Testbitmuster Port A: OXXXXXXX
Testbitmuster Port B: X X X X X X X 1
X = 0 für IS-Eingang, X = 1 für Ausgang
Tabelle 5. 22 Aufbau der Bitmuster für
löpolige Schaltkreise
E/A-Maske Port A: XXXXXXXX
E/A-Maske Port B: XXXXXXXX
Testbitmuster Port A: XXXXXXXX
Testbitmuster Port B: XXXXXXXX
X = 0 für IS-Eingang, X = 1 für Ausgang
des Testprogramms läßt sich
durch Einfügen weiterer DATA-
Zeilen erweitern, deren Struktur
den Tabellen 5. 19 bis 5,22 zu
entnehmen ist.
Die eigentliche Testroutine
(Programmzeilen 370 bis 430)
basiert auf der Tatsache, daß
sich bei Abarbeitung eines IN-
Befehls mit einem in Mode 3
(Bitbetrieb) arbeitenden PIO-
Kanal die der CPU zugeführten
Daten zusammensetzen aus den
Daten des Eingaberegisters (das
gilt für die Bits, die im E/A-
Steuerwort als Eingänge defi¬
niert sind) und den Daten des
Ausgaberegisters (für die Bits,
die im E/A--Steuerwort als Aus¬
gänge festgelegt sind).
Das Programm ist auf dem ZX
Spectrum nur unter Beta Basic
3.0 lauffähig, weil dort die
erforderlichen logischen Ver¬
knüpfungen implementiert sind.
Diese Verknüpfungen kann man für
andere Rechnertypen auch als Un¬
terprogramme in Basic oder Ma¬
schinensprache schreiben.
74
5. 10.
Zusanmenschal tung mehre¬
rer Zusatzmodule
5. 10. 1. Bus Verlängerung
Der gleichzeitige Betrieb mehre¬
rer Zusatzmodul e an einem Klein¬
computer gestaltet sich durch
das Vorhandensein von meist nur
einem StecKplatz problematisch.
Einen Ausweg bietet die Bus Ver¬
längerung nach Bild 5.64, mit
der 5 StecKplätze für Hardware-
Erweiterungen zur Verfügung
stehen. Es werden dafür Buchsen-
und StecKerl eisten mit 2 x 29
Polen nach TGL 29 331 verwendet.
Mit einer solchen Buchsenleiste
sollte auch der ZX Spectrum aus¬
gerüstet werden, um Kontakt- und
I
&
'"-1
o!
s
0)
'S
i
-w
3
S,
<o
io
■Ö
S3
75
Beschaffungsprobleme hei der
Verwendung der Original -Steck¬
verbinder zu umgehen,
Die Platine stellt durch die eng
benachbarten, relativ langen
Leitungen eine erhebliche kapa¬
zitive Belastung des Rechnerbus¬
ses dar, so daß man kaum ohne
Bustreiber auskommen wird. Sämt¬
liche mit der Spannungsversor¬
gung des Computers in Verbindung
stehenden Leitungen wurden un¬
terbrochen, um die Betriebsspan¬
nungen auch extern einspeisen zu
können. Bei Verwendung der in¬
tern erzeugten Spannungen sind
diese Unterbrechungen zu über-
brtlcken. Dann sind aber die im
Abschnitt 5. 1. genannten Strom¬
ergiebigkeiten zu beachten und
Massekurzschlüsse, insbesondere
mit -5 V und +12 V, unbedingt
zu vermeiden. Anderenfalls be¬
steht Gefahr für die dynami¬
schen RAMs und den Transverter.
5. 10. 2. Adapter
Der Adapter (Bild 5.65) gestat¬
tet das Betreiben von Original -
Spectrum- Zubehör an einem EGS-
Steckverbinder mit 2 x 29 Polen
in den Fällen, in denen eine
Umrüstung des Interfaces nicht
möglich ist. Hier sei nur die
Ausleihe selten gebrauchter
Zusatzgeräte (z. B. EPROM-Pro-
graixmi er gerät) genannt. Bild
5. 65 zeigt nur eine Seite des
Adapters. Die Platine ist auf
der Leiter- und Bestückungsseite
Jeweils gleich strukturiert. In
den Adapter muß zunächst die
Aussparung für den Verpolungs¬
schutz gesägt werden. Die Löt-
augen für den Anschluß der 29.
Anschlüsse sind nicht zu bohren
oder gar zu verbinden. Sie blei¬
ben für später geplante Erweite¬
rungen oder den Aufbau einer
Interrupt-Prioritätskette reser¬
viert. Sehr zu empfehlen ist
zwecks besserer Kontaktgabe das
Verzinnen der Anschlüsse. Auf
die metrische Seite des Adapters
wird nun das Gegenstück des
Spectrum- Verbinders gelötet.
Sinnvoll ist der Einbau der
Buchse in den Spectrum und des
Steckers in die Zusatzmodul e, da
dann die Ausgangsleitungen des
Rechners nicht unisoliert zu¬
gänglich sind.
• t •
Bild 5.66 Adapter ( Musteraufbau )
76
5. 10. 3. Bustreiber
Die Daten- und Adreßausgänge
sowie die low-aktiven Steueraus¬
gänge der CPU U 660 sind in der
Lage, je eine TTL-Lasteinheit zu
treiben. Im Hinblick auf eine
Vergrößerung der Busbelastbar¬
keit sowie auf die Unterdrückung
von Störimpulsen und parasitären
Kapazitäten können die CPU-Si-
gnale verstärkt werden. Das ist
besonders dann erforderlich,
wenn das System eine gewisse
Größenordnung erreicht hat. » Ab
wann genau eine Buspufferung
benötigt wird, hängt von vielen
Faktoren ab und ist nicht zu¬
letzt exemplarabhängig von Rech¬
ner zu Rechner verschieden.
Natürlich birgt der Einsatz
eines Bustreibers- auch Probleme.
So muß man unter anderem die oft
hohe Stromaufnahme beachten, die
besonders beim Einsatz von
680
Bild 6. 67 Schaltung des Bustrelhers
77
zum Erweiterungs —
anschluß des DL 010
Bild 5. 68 Erweiterungsschaltung
zur Absicherung des Vektor -Interrupts
Schottky-Treibern (DS-Se rie)
schnell einige 100 mA erreichen
Kann, wofür meist schon ein
externes Netzteil* erforderlich
wird. Bustreiber sihd also nicht
schlechthin das Mittel der Wahl,
zumindest bezogen auf die Klein-
und Heimcomputer. Für weniger
hartnäckige Fälle gibt es auch
einfachere Varianten zur Vergrö¬
ßerung der Busbelastbarkeit,
z. B. den Einbau von Pull-up-Wi-
derständen in die Datenleitungen
(8 x 4, 7 bis 10 kß) oder der
Einsatz einer CMOS-CPU.
Der Datenverkehr eines Mikro¬
rechners vollzieht sich grund¬
sätzlich bidirektional, denn die
CPU kann Daten senden und emp¬
fangen. Die Adressen und einige
Steuersignale werden von der CPU
nur gesendet, die restlichen
Steuersignale nur empfangen. Für
die Datenleitungen ist deshalb
ein in der Datenrichtung um¬
schal tbarer Bustreiber erforder¬
lich. Zur Datenrichtungsumschal-
tung dient eine Logikschaltung,
die in 3 Fällen ein Buslesen
realisieren muß:
1. Speicher lesen
(RD = L und MREQ = L)
2. Port lesen
(RD - L und IÖRQ = L)
3. Interrupt vektor lesen
(Ml = L und IORQ n L)
Hier treten bei Kleincomputern
in der Regel weitere Probleme
auf. Die Speichererweiterung und
einige I/O-Schnittstellen befin¬
den sich bereits auf der Compu¬
ter-Grundplatine, aus der Sicht
Bild 5.69 Bus tre Iber-Layout ( Leiterseite )
78
der CPU also vor dem Bustreiber.
Deshalb kommt es in den Be¬
triebsarten Speicher lesen und
Port lesen zu Buskonflikten,
wenn die internen Systemeinhei¬
ten angesprochen werden und
gleichzeitig der Bustreiber in
Richtung CPU umgeschaltet wird.
Es gibt mehrere Möglichkeiten,
das zu umgehen:
1. Der Bustreiber wird von einem
auf jedem Interface zu erzeu¬
genden Richtungssignal ge¬
steuert. Das vereinfacht die
Hardware des Bustreibers zwar
sehr, erfordert aber Eingrif-
* fe in Jedes anzuschließende
Interface, was besonders bei
Industriegeräten mit unbe¬
kannter Schaltung problema¬
tisch ist.
2. Der Bustreiber wird ständig
in Ausgaberichtung betrieben
und nur bei Speicher- oder
Portleseoperationen, die sich
auf externe Systemeinheiten
beziehen, in Eingaberichtung
geschaltet.
3. Die Ausgänge des Bustreibers
werden beim Lesen der inter¬
nen Speicher bzw. I/O-Ports
in den hochohmigen Zustand
gebracht. Dazu dient der low-
aktive Steuereingang ÖE.
Die Variante 3 erwies sich be¬
sonders bei hohen Taktfrequenzen
als etwas zeitkritisch. Darüber
hinaus ist damit ein Betreiben
des Rechners in der Interruptbe¬
triebsart 2 nicht möglich. Dazu
müßten die Ausgänge des Bustrei¬
bers ständig freigegeben sein
(mit OE = L), um die Erkennung
des Maschinenbefehls RETI durch
die Peripheriebausteine zu ge¬
währleisten. Deshalb wurde der
Variante 2 der Vorzug gegeben.
Unter Verwendung eines DS 6266
und von 3 Schaltkreisen DS 6262
wurde für den ZX Spectrum ein
Bustreiber aufgebaut, dessen
Schaltung das Bild 5.67 zeigt.
Die Datenrichtung wird mit einer
aus einem DL 004 und einem
DL 010 bestehenden Schaltung
umgeschal tet. Für die Taktpuffe¬
rung wurde ein freies Gatter des
DL 004 verwendet, da der ZX
ZX Bus
T r e i b e r
Bild 5. 70 Bus tre Iber-Layout (Bestückungsseite)
79
Steckverbinder 2x29 pol.
Bild 5. 71 Bestückungsplan
ZX Bus
Tr ei
Spectrum an seinem Bussteckver¬
binder ein invertiertes Taktsi-
gnal bereitstellt. Der 680-Q-
Widerstand sichert den erforder¬
lichen Pegel für die Peripherie¬
schal tKreise, deren Takteingänge
abweichend von der TTL-Norm
einen H-Pegel von +5 ^ benöti¬
gen. An den noch freien Eingang
des DL-Ol 0-Gatters können bei
Bedarf weitere Signa lquel len zur
Richtung sums chal tung des Bus-
treibers angeschlossen werden.
Im Bild 5. 68 ist ein Beispiel
zur Absicherung des Vektor- In¬
terrupts (Interrupt -Mode 2) an¬
gegeben.
Bild 5. 72 Musteraufbau
80
5. 11. Speichererweiterungen
Die in den folgenden Abschnitten
gezeigten Spe i eher erwe i t erung en
bedingen im Gegensatz zu allen
anderen bisher vorgestel 1 ten
Baugruppen Eingriffe in die be¬
stehende Rechnerhardware. Zudem
beziehen sie sich sehr stark auf
die Originalversion des ZX Spec¬
trum und sind daher nicht ohne
größere Änderungen auf andere
Rechnertypen übertragbar, wes¬
halb sie bewußt am Schluß behan¬
delt werden.
5. 11. 1. RAH-Erweiterung von 16 k
auf 46 k
In der Grundversion des ZX Spec¬
trum sind neben einem 16K-ROM,
der Betriebssystem und BASIC-
Interpreter enthält, 16 kByte
RAM-Kapazität vorhanden. Hierin
drängeln sich die Systemvariab¬
len, der DrucKerpuffer, der
Stack und die Displaydatei, so
daß für Anwenderprogramme nicht
mehr viel .Platz bleibt. Auch
wenn diese 16 k manchem Umstei¬
ger vom ZX 81 gigantisch anmuten
(dort war für all das lediglich
1 kByte vorhanden), aus heutiger
Sicht sind 16 k RAH eher als
bescheiden anzusehen. Es liegt
also nahe, den RAM-Bereich zu
vergrößern, zumal der ZX Spec¬
trum dafür schon vorbereitet
ist. Auf der Rechner-Platine
sind i>2 Steckfassungen angeord¬
net, die nur mit den richtigen
Schaltkreisen bestückt werden
müssen. Es werden benötigt:
8 64k x 1 dynamische RAM 4164
(U 2164) als IC 15. . . 22
1 Schaltkreis 74 LS 32 ( DL 032)
als IC 23
1 Schaltkreis 74 LS 00 (DL OOO)
als IC 24
2 Schaltkreise 74 LS 157
(DL 257) als IC 25, 26
In Klammern stehen die entspre¬
chend verwendbaren DDR -Typen.
Der Ersatz des 74 LS 157 durch
den DL 257 wurde an einigen
Exemplaren des Spectrum prak¬
tisch überprüft. Trotzdem kann
es in Einzel fällen zu Unverträg¬
lichkeiten kommen. Schaltkreise
der Standard-TTL-Serie (wie
D 100) sollten wegen der hohen
Stromaufnahme nicht verwendet
werden. Verwendbar sind neben
LS-Typen auch Schaltkreise der
ALS-, HC- und i/CT-Serie. Die IC-
Bezeichnungen findet man im Be¬
st ückungs druck der Platine.
5. 11. 2. RAM-Erweiterung von 48 k
auf 80 k
Im vorigen Abschnitt wurde ge¬
zeigt, wie mit geringem Aufwand
der RAM-Rereich des ZX Spectrum
um 32 kByte vergrößert werden
kann. Dafür wurden als RAM-
Schaltkreise 64k-Typen empfoh¬
len, die dabei aber nur zur
Hälfte ausgenutzt werden. Eine
kleine Zusatzschaltung gestattet
es Jedoch, auch die anderen
32 kByte zu nutzen. Der Spectrum
ist aber nunmehr mit einem 16k-
ROM, 16k RAM und der 32k-RAM-
Erweit erung aus dem Abschnitt
5. 11. 1. bestückt. Das bedeutet
volle Belegung für den Spei-
cher-Adreßraum des U 880 , weil
dieser Prozessor mit seinen 16
Adreßleitungen nur 216 = 65536
(= 64 k) Speicherplätze adres¬
sieren kann. Ein weiterer Ausbau
des Speichers kann daher nur
über eine Umschaltung von Spei¬
cherbereichen erfolgen. Die
81
TaDelle 5.23 Speicheraufteilung im ZX Spectrum
Typ 16-k-Version 48-k-Version 80-k-Version
ROM 0000. . . 3FFF H 0000. . , 3FFF H 0000. . . 3FFF H
RAM 4000. . . 7FFF H 4000. . . 7FFF H 4000. . . 7FFF H
RAM - - 8000. ..FFFFH 8000. . . FFFF H (BANK 1)
RAM - - 8000. ..FFFFH (BANK 2)
Bild 5. 73 Elektronische Spelcherbank-Umschaltung
Bild 5. 74 Layout für die Spelcherbahk-Umschal tung
82
Bild 5. 76 Musteraufbau
Tabelle 5.23 verdeutlicht die
Speicheraufteilung der verschie¬
denen Versionen.
Die Umschaltung der Speicherbän¬
ke wird über die Schaltung nach
Bild 5. 73 elektronisch reali¬
siert. Aus den Schal tkreisen
DL 002 und DS 6205 (bzw.
74 LS 136 oder 74 HCT 136) wird
ein Adreßdekoder gebildet. Die¬
ser aktiviert bei einem OUT-
Befehl an die Adresse 0001 ein
Flipflop (DL 074) , das den aktu¬
ellen Zustand der Datenleitung
DO übernimmt. Der Ausgang dieses
Flipflops gelangt über eine
Leuchtdiode zur Anzeige und wird
über eine bisher unbeschaltete
Leitung am Bus st eck verbinder in
den Spectrum geführt. Verwendet
wurde die Leitung B4. Diese
Leitung ist auf der Platine des
ZX Spectrum mit dem mittleren
Lötauge rechts neben dem ULA-IC
(siehe Bild 5. 77) zu verbinden.
Diese Angaben beziehen sich auf
die relativ wei't verbreitete
Version 2 des ZX Spectrum. Bei
anderen Versionen ist unter Zu¬
hilfenahme der Schaltung des
Rechners sinngemäß zu verfahren.
Unter dem DL 074 sind auf der
Modul platine 2 Löt äugen angeord¬
net. Sie verbinden den RESET -
Anschluß des DL 074 mit dem
System-RESET, falls hier eine
Drahtbrücke eingelötet wird. Da¬
mit kann erreicht werden, daß
nach einem Reset des Rechners
immer die Speicherbank 0 einge¬
schaltet ist. Bei einem RESET
durch Unterbrechen der Betriebs¬
spannung ist das Jedoch in Jedem
Fal 1 gegeben.
Mit den Befehlen OUT 1,0 und
OUT 1, 1 kann zwischen den beiden
Spe i eher ber e i chen umg e s cha 1 1 e t
werden. Dabei muß R AMTOP aller¬
dings unter den umschal tbaren
Bereich gelegt werden. Ansonsten
würde der Rechner beim Wechsel
der Speicherbänke seinen Maschi¬
nenstapel "vergessen”. Das führt
zum Systemabsturzf Soll eine
4ök-Version des Spectrum umge¬
rüstet werden, so ist das immer
dann unproblematisch, wenn für
die Speicherschaltkreise Steck¬
fassungen vorgesehen sind. Ein
Aus löten der Schaltkreise setzt
bei der filigranen Leiterplatte
große Erfahrungen voraus und
kann deshalb nicht generell
empfohlen werden. *
IC
IC
IC
+
0
3
4
26
ULA
o
CPU
o
T
IC
IC
X
25
24
23
Bild 5. 77 Ausschnitt aus der
Platine des ZX Spectrum
63
5. 11. 3. RÖH-Erweiterungen
Wie bereits dargelegt,- Kann die
CPU U 880 lediglich 64 K Spei¬
cher direkt adressieren. Deshalb
ist auch dieser Abschnitt nicht
im Sinne einer Vergrößerung des
ROM-Bereiches zu verstehen. Auch
hier geht es vielmehr um einen
(eventuell softwaremäßig schal t-
baren) Austausch des internen
ROMs durch einen oder mehrere
andere ROMs (oder EPROMs) glei¬
cher Qder geringerer Speicherka¬
pazität. Diese ROMs könnten
z. B. ein geändertes Betriebs¬
system oder eine andere Program¬
miersprache enthalten. Darüber
hinaus ist es möglich, das in¬
terne ROM nur bei einem bestimm¬
ten Bitmuster auf dem Adreßbus
(in Verbindung mit MREQ i 0)
abzuschalten und dafür ein ex¬
ternes ROM einzublenden. Auf
diese Weise können einzelne
Routinen des Original -ROMs geän-
84
dert werden, was für die Einbin¬
dung von Treibern für system¬
fremde Drucker oder Massenspei¬
cher (Floppy-Disk) interessant
werden kann. Darauf wird hier
Jedoch nicht näher eingegangen.
Im Bild 5. 78 ist die Anschlußbe¬
legung des Original -ROMs des
ULA PIN 34
Bild 5. 79 ROM-Ersatz durch
1 x 27128
ROMCS
ULA 34
Spectrum-ROM
Tal>elle 5.24 Piribelegung der wichtigsten EPROM-Typen
CO
£
X
00
o
CU
K
>
lg
ro
O
PH
<D
tr¬
id
Fn
oo
er
^ 1
|W
H
IW
tr-
UO
ID
ro
W
eu
+
(Pi
<
<
<
< 1
Io
C
IC
P
p
P
P
P
00
£
O
K
=*
«
UO
>
|£
h-H
O
Ph
io
O
o0
er
|W
H-i
IW
c-
U0
ID
ro
0
00
cu
+
Iph
£
<
<
<1
Io
<llo
P
p
P
P
P
00
PU
£
PU
O
K
cu
p
«
ro
>
■H
\
o
Ph
t>
UO
00
er
•H
w
tH
|W
tr-
UO
ID
ro
0
cu
+
<
C
C
o
<;
Io
P
p
P
P
P
o0
i
£
-O
X
uo
Ph
>
PU
o
Ph
tr¬
UO
oO
PU IW
H 1
IW
tr-
UO
ID
ro
0
CU
eu
+
c
<J
Dl
IO
<
b
P
p
P
P
P
oo
tr¬
UO
UO
ro
cu
Hl
o
Cr
00
tr-
CD
UO
cu
eu
cu
cu
cu
cu
cu
cu
cu
tH
tH
•H
^rH
ro
cu
iri
O
Os
oo
tr-
U0
ID
s*
ro
525
CU
cu
cu
cu
cu
tH
^rH
h-H
-H
^rH
•H
H
00
Ph
CU
cu
O
t-1
cu
cu
ro
5t*
UO
(0
ts
00
er
-r-l
hH
O
tH
cu
ro
■H
cu
ro
UO
CD
D-
00
cr
rH
tH
■H
hH
00
£
CD
O
UO
C0
w
co
tr¬
t-
UO
UO
ro
cu
O
O
•H
cu
nd
0
CU
eu
<
<
<
<
<
C
<
<
P
P
P
£
00
£
0
O
*
cu
CO
Ph
ro
10
Ph
tr¬
tr-
CD
UO
ro
cu
■H
o
O
cu
0
0
eu
C
<
<
<
<
<
<
P
P
p
£
00
£
0
O
K
=*
CO
OsS
UO
PU cu
<1
CO
Ph
JSC
tr¬
Pu
^rH
t>
CD
ID
ro
cu
o
O
▼H
cu
flj
0
00
eu
D
<
C
C
<
<
<
<
<
P
P
P
£
00
£
K
aO
0
O
cu
10
«
X
PU cu
C0
Ph
cO
c-
PU
tH
tr-
CD
UO
ro
cu
h-H
o
o
■H
cu
cd
0
•H
cu
P <
<
-c
<
<
C
<
c
p
P
p
£
85
ULA PIN 3U
276 4 2764
Adr. 8192 ...16 383 Adr. 0... 8191
Bild 5. SO ROM-Ersatz durch 2 x 2764
ZX Spectrum. Die .Anschlußbele¬
gung der wichtigsten EPROM-Typen
geht aus Tabelle 5.24 hervor.
Man erkennt, daß das ROM bis auf
die Anschlüsse 1 und 27 an-
schlußkompatibel zum EPROM 27 126
ist. Pin 1 (beim ROM nicht be¬
schältet) ist lediglich für die
Programmierung des EPROMs inter¬
essant und wird daher nicht
näher betrachtet. Pin 27 des
ROMs ist mit der CPU-Leitung
MREQ verbunden, dem EPROM 27126
werden hier die Pr ogrammi er im¬
pul se zugeführt. Um dem ange¬
schlossenen EPROM dennoch ein
aktives MREQ-Signal mit zu tei¬
len, wird es mit dem Signal CE
(Pin 20) verknüpft. Das kann
über ein Gatter eines DL 032
erreicht werden. Sämtliche ande¬
ren Anschlüsse' des EPROMs sind
mit den entsprechenden Anschlüs¬
sen des ROMs zu verbinden. Da
Beschaffung und Programmierung
des EPROMs 27126 mitunter
Schwierigkeiten bereiten, sind
in den Bildern 5.79 bis 5. öl
auch Schal tungslösungen unter
Verwendung von EPROM-Typen klei¬
nerer ^Speicherkapazität angege¬
ben. Auf den Einsatz des lk-
EPROM 2706 ( U 555) sollte schon
wegen der unhandlichen Span¬
nungsversorgung verzichtet wer¬
den, sofern der Rechner nicht
über entsprechende Schaltungs¬
einheiten verfügt.
86
ULA PIN 34
W 3:
£
3
§
<Vi n
£ ä
CSI 2
x5
<
8
T—
u
3
&
f n
IS
<\j
*
3
-M
S
i
QO
uS
tJ
•^i
87
\
/
6,
Aufbauhinweise
Für den Aufbau der vor st eilend
beschriebenen Modul e und eine
eventue Ile Fehl ersuche werden
Grundkenntnisse der Mikroelek¬
tronik, insbesondere der Mikro¬
prozessorfamilie U 660 ein¬
schließlich des Signalspiels der
CPU, sowie Erfahrungen beim Auf¬
bau elektronischer Schaltungen
und im Umgang mit elektronischen
Bauelementen vorausgesetzt. Zur
Inbetriebnahme der Platinen ist
zumindest ein Vielfachmeßgerät,
besser auch ein Oszilloskop,
er f order 1 i ch. Di e veröf f f ent -
lichten Leiterplatten weisen
zumeist einen Schwierigkeitsgrad
auf, der nur eine fotomechani¬
sche Herstellung sinnvoll er¬
scheinen läßt. Dabei dürfte der
Einzel amateur wahrscheinl ich auf
die Hilfe von Elektronik-Ar¬
beitsgemeinschaf ten oder spezia¬
lisierten Firmen angewiesen
sein.
Die Bohrungen sollten möglichst
mit Spiralbohrern von 0, 7 oder
0, 8 mm Durchmesser mit einer
Bohrmaschine hoher Drehzahl
ausgeführt werden. Lediglich für
Bauelemente mit dickeren An¬
schlüssen (Taster, Diodenbuch¬
sen, Stel lwiderstände usw. ) sind
entsprechend größere Bohrer (bis
etwa 1, 3 mm) zu wählen. Dem
wurde bei der Platinengestaltung
bereits mit größeren Lötaugen
Rechnung getragen. Vor der Be¬
stückung empfiehlt sich eine
Reinigung der Platine mit einem
Putzmittel und ein Einstreichen
mit in Spiritus gelöstem Kolo¬
phonium. Ebenfalls vor der Be¬
stückung sollten alle zum Steck¬
verbinder führenden Leitungen
mit einem Ohmmeter untereinander
auf Feinschluß geprüft werden.
Eventuell vorhandene Haarrisse
in den Leiterzügen werden mit
einer starken Lupe aufgespürt
und durch Verzinnen beseitigt.
Nach der Bestückung wird die
Prüfung auf Feinschluß wieder¬
holt, besonders bei den Daten
und Adreßleitungen. Da die mei¬
sten Kleincomputer einen unge-
pufferten Bus aufweisen, kann es
bei Nichtbeachtung dieser Vor¬
sichtsmaßregeln zu Ausfällen
durch unbeabsichtigtes Verbinden
einzelner Signal lei tungen kom¬
men. Aus diesem Grund dürfen
sämtliche Zusatzgeräte nur bei
ausgeschal teter Betr J ebsspannung
gesteckt bzw. abgezogen werden.
Man vermeide auch grundsätzlich
ein Zurechtrücken der Modul e bei
eingeschal tetem Rechner! Nach
vollständiger Bestückung ist die
Stromaufnahme zu kontro 1 1 i er en
und die Betriebsspannung an al¬
len Schaltkreisen nachzuweisen.
Abgleicharbeiten an den Hard¬
ware-Zusätzen sind zumeist nicht
erforderlich oder auf ein Mini¬
mum beschränkt.
89
t
7. Reparaturtips
Trotz aller Vorsicht Kann es
besonders den Hardware -Bast lern
passieren, daß, vielleicht durch
eine Unacht samkeit, oft aber
auch "einfach so", der Rechner
streikt. Einige an der Original -
Version des ZX Spectrum immer
wieder auf tretende Fehler und
Möglichkeiten für deren Beseiti¬
gung werden im folgenden be¬
schrieben.
Zur Eingrenzung des Fehlers wer¬
den zunächst die 3 Betriebsspan¬
nungen + 5 V, -5 V und + i2 V
überprüft. Das geht sehr einfach
an einem der 16k-RAMs. Hier
liegen -5 V am Pin 1, +12 V am
Pin 8, +5 V am Pin 9 und 0 V
(Masse) am Pin 16. Fehlen alle
Spannungen, wird der Fehler im
Netzteil liegen (Vorsicht Netz¬
spannung!). Fehlen +5 V, kann
der Spannungsreg 1 er-Schal tkrei s
7605 die Ursache sein. Dieser
Typ liegt in der DDR nur als
Tesia- Import in einem viel grö¬
ßeren Gehäuse vor. Es ist des¬
halb günstiger, für den 7605
einen Spannungsregler B 3170
oder B 3171 zu verwenden. Die
dafür erforderlichen Widerstände
zur Einstellung der Ausgangs¬
spannung sind bequem noch im
Spectru/n-Gehäuse unterzubringen.
Man beachte die unterschiedli¬
chen Anschlußbelegungen der
Schaltkreise !
Der mit Abstand häufigste Defekt
ist der Ausfall des Transver¬
ters, der -5 V und +12 V für di.e
8 dynamischen 16K-RAMs erzeugt.
Dieser Fehler tritt manchmal
allein, oft aber in Verbindung
mit dem Ausfall eines der 8 16k-
RAMs auf. Zur Fehlersuche können
die beiden Transistoren des
Transverters ausgelötet und
überprüft werden. In der Origi¬
nalschaltung des ZX Spectrum
werden die Typen ZTX 651 (TR4 -
npn) und ZTX £13 (TR5 - pnp)
verwendet. Im Fehl erf al 1 können
diese Transistoren durch die
Typen SF 616 bis SF 619 bzw.
SF 626 bis SF 629 ersetzt wer¬
den. Diese Nachfolge typen der
bekannten SF 116 bis SF 119 bzw.
SF 1$6 bis SF 129 sind in einem
potential freien Plastgehäuse
verkappt, was bei dem gedrängten
Aufbau vorteilhaft ist. Fehlen
-5 V und +12 V nach Transistor¬
wechsel noch immer, ist noch
eines der 8 16k-RAMs defekt. Am
einfachsten findet man den de¬
fekten Schaltkreis durch oszil-
loskopische Kontrolle der 8 Da¬
tenleitungen. Dabei ist es gele¬
gentlich vorteilhaft, den RESET -
Eingang der CPU über einen Wi¬
derstand von etwa 1 kß auf Masse
zu legen. Die dem defekten RAM
zugeordnete Datenleitung zeigt
zeigt einen auffälligen Pegel.
Als Ersatztyp für die RAMs 4116
eignen sich U 256 der DDR -Pro¬
duktion. Sollte nach diesen Ma߬
nahmen der Rechner noch nicht
arbeiten, kann der Fehler noch
an der CPU, dem ROM oder dem ULA
liegen. Für den Z 60 kann eine
CPU VA 660 eingesetzt werden.
Oft arbeitet zunächst auch ein
UB- Typ, der aber bei Erwärmung
des Rechners aussetzen kann. Der
ROM kann durch ein EPROM ent-
91
sprechenden Inhalts ersetzt wer¬
den. Ein defektes ULA läßt sich
hei vertretbarem Aufwand nur
durch einen Original schal tkreis
ersetzen.
Ein in Verbindung mit dem Inter¬
face I häufig auftretender Feh¬
ler ist das Fehlen des Mi -Si¬
gnals der CPU. Festgestellt wird
der Fehler wieder durch oszil-
loskopische Kontrolle. Auch in
diesem Fall ist ein CPU-Wechsel
erforderlich.
8.
Literaturverzeichnis
[1] VEB Mikroelektronik Karl
Marx Erfurt, Mikroprozes¬
sorsystem der II. Lei¬
stungsklasse, Technische
Beschreibung CPU, PIO, SIO,
CTC und DMA, Erfurt 1984
[2] H. Kleser/M. Meder , Mikro¬
prozessortechnik, Ber 1 in
1986
[3] H. Barthol d/H. Bäurlch , Mi¬
kroprozessoren - Mikroelek¬
tronische Schaltkreise und
ihre Anwendung, Berlin 1985
[4] R. Egel er > ZX Spectrum
Hardware, ' Haar 1985
[5] L. Schüssler , ZX Spectrum
Hardware -Erwe i t erung en,
Düsseldorf 1984
[6] M. James , Der Weg zur ZX -
Spec trum-Me i s t er s chaf t ,
Würzburg 1985
[7] K. Schlenzlg/S. Schlenzlg,
Tips und Tricks für kleine
Computer, Berlin 1986
[8] A. Bogatz , Mikrorechner in
der Amateurmeßtechnik,
Berlin 1988
[9] M. Kramer , Praktische Mi¬
krocomputertechnik, Ber 1 in
1987
[10] H. Kleser/M. Banke' 1 , Ein-
chlpmikrorechner, Berlin
1986
[11] Allerlei. In: Elektor
6/1984, S. 48f f .
[12] Joystick-Anschluß an den
ZX Spectrum. In: Radlo-
technika 4/1985, S. 7ff..
[13] Spe i eher erwe it erung en für
den ZX Spectrum. In: Radio-
technika 7/1985, S. 9ff.
[14] R. Arenz/M. Görlitz , Das
Sinclair Spectrum ROM,
München 1984
[15] Sinclair Research Ltd. ,
ZX Spectrum Benutzerhand¬
buch (Deutsche Überset¬
zung ) , München 1984
[16] U. Fischer , Beta Basic 3.0
Deutsches Handbuch, Hamburg
1985
V
I
‘ i
;
I
V'
1
1
iO io
Inhaltsverzeichnis
Vorwort . 3
i. Das t/-£50-Prozessorsystem . 5
i. 1. CPU U SSO . '. . . . 5
1. 2. PIO U S55 . . 6
1. 3. SIO U S56 . ' . 6
1. 4. CTC U S57 . 9
1.5. DMA U S5S . . . 10
2. Der Aufbau eines Kleincomputers . 11
3. Spezial Schaltkreise für Kleincomputer . . 13
4. Adreßdekodierung . 15
Hardware-Erweiterungen . 17
.1. Der Erweiterungsanschluß des ZX Spec¬
trum . ‘ . . . 17
5.2. Reset-Taste . . . . 19
5. 3. Video-Anschluß . 20
5. 4. Lichtstift . 20
5.5. Joystick-Anschluß . 22
5. 5. 1. Joystick-Anschluß ohne Zusatzhardware . . 23
5. 5. 2. Joystick-Anschluß über Peripherieschalt¬
kreise . 25
5. 5. 3. Kemps ton- Joystick. . 25
5. 5. 4. Zusatzfunktionen für Joysticks . 28
5.5. Paral lei -Schnittstel len . 31
5.6.1. Paral lei -Schnittstel len mit Register¬
schal tkreisen . 31
5.6.2. Paral lei -Schnittstel le mit der PIO
U S55 . . r. . 32
5.6.3. Centronlcs-Schnlttstel le . 36
5. 6. 4. Programmierung der PIO U S55 im Inter¬
ruptbetrieb . . . . . . . . 42
5.6.5. Paral lei -Schnittstelle mit der PIO
S255 . 42
5.7. . Serielle Schnittstellen . . 43
5. 7. 1. Anschluß der ERIKA S 5004 . 45
5. 7. 2. Fernschreiber-Anschluß . 54
5. 8. Pegel anpassung für Kassettenrekorder ... 55
• 5. 8. 1. Das Bandformat . ‘ . 58
95
- . ' \
*
5.9. Anwendungen von Kleincomputern in der
Meß- und Prüftechnik . 59
5. 9. 1. Ö-Kanal -Digital Voltmeter . . 59
5. 9. 2. Schal tkreistester . 65
5. 10. Zusammenschaltung mehrerer Zusatzmo-
, dule . 75
5. 10. 1. Busverlängerung . 75
5. 10. 2. Adapter . 76
5. 10. 3. Bustreiher . . . 77
5. 11. Speicher-Erweiterungen . öl
5. 11. 1. RAM-Erweiterung von 16 k auf 46 k . öl
5. 11. 2. RAM-Erweiterung von 46 k auf ÖO k . 61
5. 11, 3. ROM-Erweiterungen . . .• . . . , . 64
6. Auffcauhinweise . . 1 69
7. Reparaturtips . 91
ö. Literaturverzeichnis . 93
i
\
Computer werden heute im Heim-, Hobby- oder Geschäfts¬
bereich vielseitig eingesetzt Besonders der internationale
Vertreter der 8-bit-Technik, der ZX Spectrum, ist auch
in der DDR und im gesamten RGW-Bereich weit verbreitet.
Zur Erhöhung der Leistungsfähigkeit dieses Heimcomputers
werden in diesem Buch neben dem Aufbau u. a. folgende
Hardware-Erweiterungen beschrieben:
* Erweiterungsanschluß des ZX Spectrum
* Reset-Taste
* Video-Anschluß
* Lichtstift
* serielle Schnittstellen
* Pegelanpassung für Kassettenrecorder
* 8-Kanal-Digitalvoltmeter
* Schaltkreistester
* Busverlängerung
* Adapter
* Speichererweiterungen
sowie
* Reparaturtips
ISBN 3-327-01030-7
DDR 6,20 M